void ModMp3::run() { SDL_AudioSpec desired, obtained, hardwareSpec; // setting the audio format desired.freq = 22050; desired.format = AUDIO_S16; desired.channels = 2; desired.samples = 1024; desired.callback = playBuffer; desired.userdata = NULL; SDL_Init(SDL_INIT_AUDIO); SDL_OpenAudio(&desired, &obtained); hardwareSpec = obtained; // Initialize madxlib madx_init(out_buffer, &mxhouse); // open the files in_file = fopen( m_fileToPlay.toAscii().data(), "rb"); out_file = fopen("/test.pcm", "wb"); SDL_PauseAudio( 0 ); while ( (false == m_haveToStop) && (SDL_GetAudioStatus() == SDL_AUDIO_PLAYING) ) SDL_Delay(1000); // clean-up madx_deinit( &mxhouse ); fclose( in_file ); fclose( out_file ); SDL_CloseAudio(); SDL_Quit(); }
MP3Codec::~MP3Codec() { DeInit(); delete[] m_InputBuffer; m_InputBuffer = NULL; delete[] m_OutputBuffer; m_OutputBuffer = NULL; delete[] m_SeekOffset; m_SeekOffset = NULL; if (m_dll.IsLoaded()) madx_deinit(&mxhouse); }