12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #include "Player.h"
- using namespace GSL;
- GSLPlayer *_player = 0;
- #ifdef WIN32
- void CALLBACK AudioOutProc( HWAVEOUT hOut, UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2 )
- {
- _player->sendSoundMSG( hOut, uMsg, dwInstance, dwParam1, dwParam2 );
- }
- #endif
- // Inhalt der GSLPlayer Klasse aus Player.h
- // Konstruktor
- GSLPlayer::GSLPlayer()
- {
- }
- // Destruktor
- GSLPlayer::~GSLPlayer()
- {
- sounds.leeren();
- }
- // nicht constant
- bool GSLPlayer::addSound( GSLSound *snd )
- {
- cs.lock();
- int anz = sounds.getEintragAnzahl();
- for( int i = 0; i < anz; i++ )
- {
- if( sounds.z( i ) == snd )
- {
- snd->release();
- cs.unlock();
- return 0;
- }
- }
- sounds.add( snd );
- cs.unlock();
- return 1;
- }
- void GSLPlayer::removeSound( GSLSound *zSnd )
- {
- cs.lock();
- int anz = sounds.getEintragAnzahl();
- for( int i = 0; i < anz; i++ )
- {
- if( sounds.z( i ) == zSnd )
- {
- cs.unlock();
- sounds.remove( i );
- return;
- }
- }
- cs.unlock();
- }
- #ifdef WIN32
- void GSLPlayer::sendSoundMSG( HWAVEOUT hOut, UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2 )
- {
- cs.lock();
- int anz = sounds.getEintragAnzahl();
- for( int i = 0; i < anz; i++ )
- {
- if( sounds.z( i ) && sounds.z( i )->getHandle() == hOut )
- {
- sounds.z( i )->msg( uMsg, dwInstance, dwParam1, dwParam2 );
- break;
- }
- }
- cs.unlock();
- }
- #endif
|