'From Squeak3.8 of ''5 May 2005'' [latest update: #6665] on 26 February 2006 at 1:16:10 pm'!

!Mpeg3Plugin methodsFor: 'primitives' stamp: 'JMM 1/20/2006 19:07'!
primitiveMPEG3CheckSig: path
	| result sz storage |

	"int mpeg3_check_sig(char *path)"
	self var: #storage declareC: 'char storage[1024] '.
	self primitive: 'primitiveMPEG3CheckSig'
		parameters: #(String).
	sz _ interpreterProxy byteSizeOf: path cPtrAsOop.
	self cCode: 'sqFilenameFromStringOpen(storage, path, sz)'.
	self cCode: 'result = mpeg3_check_sig(storage)'.
	^result asOop: Boolean
! !

!Mpeg3Plugin methodsFor: 'primitives' stamp: 'JMM 1/20/2006 18:38'!
primitiveMPEG3OpenABuffer: path size: size
	| mpeg3Oop index |

	self var: #index declareC: 'mpeg3_t ** index'.
	self primitive: 'primitiveMPEG3OpenABuffer'
		parameters: #(String SmallInteger).
	mpeg3Oop := interpreterProxy instantiateClass: interpreterProxy classByteArray
					indexableSize: 4.	
	index := self cCoerce: (interpreterProxy firstIndexableField: mpeg3Oop)
						to: 'mpeg3_t **'.
	self cCode: '*index = mpeg3_open(path,size); makeFileEntry(*index)'.
	^mpeg3Oop.
! !

!Mpeg3Plugin methodsFor: 'primitives' stamp: 'JMM 1/20/2006 19:11'!
primitiveMPEG3Open: path
	| mpeg3Oop index sz storage |

	"mpeg3_t* mpeg3_open(char *path)"
	self var: #index declareC: 'mpeg3_t ** index'.
	self var: #storage declareC: 'char storage[1024]'.
	self primitive: 'primitiveMPEG3Open'
		parameters: #(String).
	sz := interpreterProxy byteSizeOf: path cPtrAsOop.
	self cCode: 'sqFilenameFromStringOpen(storage, path, sz)'.
	mpeg3Oop := interpreterProxy instantiateClass: interpreterProxy classByteArray
					indexableSize: 4.
	index := self cCoerce: (interpreterProxy firstIndexableField: mpeg3Oop)
						to: 'mpeg3_t **'.
	self cCode: '*index = mpeg3_open(storage,0); makeFileEntry(*index)'.
	^mpeg3Oop.
! !

