1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- Namespace std.audio
- #rem monkeydoc @hidden
- #end
- Class StbAudioData Extends AudioData
-
- Method New( length:Int,format:AudioFormat,hertz:Int,data:Void Ptr )
- Super.New( length,format,hertz,data )
-
- _data=data
- End
-
- Private
-
- Field _data:Void Ptr
-
- Method OnDiscard() Override
-
- libc.free( _data )
-
- _data=Null
- End
-
- Method OnFinalize() Override
-
- libc.free( _data )
- End
-
- End
- Internal
- Function LoadAudioData_OGG:AudioData( path:String )
- Local buf:=std.memory.DataBuffer.Load( path )
- If Not buf Return Null
-
- Local channels:Int
- Local hertz:Int
- Local samples:Short Ptr
-
- Local length:=stb.vorbis.stb_vorbis_decode_memory( buf.Data,buf.Length,Varptr channels,Varptr hertz,Varptr samples )
-
- If length=-1 Return Null
-
- Local format:AudioFormat
- Select channels
- Case 1
- format=AudioFormat.Mono16
- Case 2
- format=AudioFormat.Stereo16
- Default
- libc.free( samples )
- Return Null
- End
-
- Local data:=New AudioData( length,format,hertz,samples )
-
- Return data
- End
|