/* Sound Generator Remote Control Example Borland C++ Builder notation Copyright © Oleg Ya. Shmelyoff 2000-2006 shmelyoff@newmail.ru last revision 17.11.2006 2:37 */ #include // declarations: UINT Start_SoundGen_MSG, Stop_SoundGen_MSG, Show_SoundGen_MSG, Set_Frequency_MSG, Set_Attenuation_MSG; void __fastcall Initialization(); HWND __fastcall FindWindowSFG(); void __fastcall ShowSoundGenerator(bool); void __fastcall StartSoundGen(unsigned int BitsPerSample, unsigned int Channels, unsigned int Rate); void __fastcall StopSoundGen(); void __fastcall SetSoundGeneratorFrequency(float L,float R); void __fastcall SetSoundGeneratorAttenuation(float L,float R); //Implementations: //--------------------------------------------------------------------------- void __fastcall Initialization() { Start_SoundGen_MSG =RegisterWindowMessage("Start_SoundGen_MSG"); Stop_SoundGen_MSG =RegisterWindowMessage("Stop_SoundGen_MSG"); Show_SoundGen_MSG =RegisterWindowMessage("Show_SoundGen_MSG"); Set_Frequency_MSG =RegisterWindowMessage("Set_Frequency_MSG"); Set_Attenuation_MSG =RegisterWindowMessage("Set_Attenuation_MSG"); } //--------------------------------------------------------------------------- void __fastcall ShowSoundGenerator(bool show) { HWND SoundGenWindowHandle,SoundGenMainWindowHandle=0; SoundGenWindowHandle=FindWindowSFG(); if (SoundGenWindowHandle) SoundGenMainWindowHandle=FindWindow("TSoundGenMainWindow","SoundGen"); if (SoundGenMainWindowHandle) { ShowWindow(SoundGenMainWindowHandle, show?SW_SHOW:SW_HIDE); PostMessage(SoundGenMainWindowHandle, Show_SoundGen_MSG,show?SW_SHOW:SW_HIDE,show?SW_SHOW:SW_HIDE); } } //--------------------------------------------------------------------------- HWND __fastcall FindWindowSFG() { return FindWindow("TApplication","Shmelyoff Sound Frequency Generator"); } //--------------------------------------------------------------------------- void __fastcall StartSoundGen(unsigned int BitsPerSample,unsigned int Channels,unsigned int Rate) { HWND SoundGenWindowHandle; SoundGenWindowHandle=FindWindowSFG(); if (SoundGenWindowHandle) PostMessage(SoundGenWindowHandle,Start_SoundGen_MSG, BitsPerSample|(Channels<<8), Rate); } //--------------------------------------------------------------------------- void __fastcall StopSoundGen() { HWND SoundGenWindowHandle; SoundGenWindowHandle=FindWindowSFG(); if (SoundGenWindowHandle) PostMessage(SoundGenWindowHandle,Stop_SoundGen_MSG,0,0); } //--------------------------------------------------------------------------- void __fastcall SetSoundGeneratorFrequency(float L,float R) { HWND SoundGenWindowHandle; SoundGenWindowHandle=FindWindowSFG(); if (SoundGenWindowHandle) PostMessage(SoundGenWindowHandle,Set_Frequency_MSG,(int&)R,(int&)L); } //--------------------------------------------------------------------------- void __fastcall SetSoundGeneratorAttenuation(float L,float R) { HWND SoundGenWindowHandle; SoundGenWindowHandle=FindWindowSFG(); if (SoundGenWindowHandle) PostMessage(SoundGenWindowHandle,Set_Attenuation_MSG,(int&)R,(int&)L); } //---------------------------------------------------------------------------