--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Runtime.InteropServices;
+using System.IO;
+using System.Diagnostics;
+using System.Threading;
+
+
+namespace FDK
+{
+ public unsafe class Cmp3 : SoundDecoder
+ {
+// static byte[] FOURCC = Encoding.ASCII.GetBytes( "SggO" ); // OggS の little endian
+
+
+ #region [ SoundDecoder.dll インポート(mpr 関連)]
+ //-----------------
+ [DllImport( "SoundDecoder.dll" )]
+ private static extern void mp3Close( int nHandle );
+ [DllImport( "SoundDecoder.dll" )]
+ private static extern int mp3Decode( int nHandle, IntPtr pDest, uint szDestSize, int bLoop );
+ [DllImport( "SoundDecoder.dll" )]
+ private static extern int mp3GetFormat( int nHandle, ref CWin32.WAVEFORMATEX wfx );
+ [DllImport( "SoundDecoder.dll" )]
+ private static extern uint mp3GetTotalPCMSize( int nHandle );
+ [DllImport( "SoundDecoder.dll" )]
+ private static extern int mp3Open( string fileName );
+ [DllImport( "SoundDecoder.dll" )]
+ private static extern int mp3Seek( int nHandle, uint dwPosition );
+ //-----------------
+ #endregion
+
+
+ public override int Open( string filename )
+ {
+ return mp3Open( filename );
+ }
+ public override int GetFormat( int nHandle, ref CWin32.WAVEFORMATEX wfx )
+ {
+ return mp3GetFormat( nHandle, ref wfx );
+ }
+ public override uint GetTotalPCMSize( int nHandle )
+ {
+ return mp3GetTotalPCMSize( nHandle );
+ }
+ public override int Seek( int nHandle, uint dwPosition )
+ {
+ return mp3Seek( nHandle, dwPosition );
+ }
+ public override int Decode( int nHandle, IntPtr pDest, uint szDestSize, int bLoop )
+ {
+ return mp3Decode( nHandle, pDest, szDestSize, bLoop );
+ }
+
+ public override void Close( int nHandle )
+ {
+ mp3Close( nHandle );
+ }
+
+ }
+}