int BEE::Sound::effect_remove_post(int se_mask) { if (!(se_mask & se_none)) { if ((se_mask & se_chorus)&&(!(sound_effects & se_chorus))) { Mix_UnregisterEffect(MIX_CHANNEL_POST, sound_effect_chorus); } if ((se_mask & se_echo)&&(!(sound_effects & se_echo))) { Mix_UnregisterEffect(MIX_CHANNEL_POST, sound_effect_echo); } if ((se_mask & se_flanger)&&(!(sound_effects & se_flanger))) { Mix_UnregisterEffect(MIX_CHANNEL_POST, sound_effect_flanger); } if ((se_mask & se_gargle)&&(!(sound_effects & se_gargle))) { Mix_UnregisterEffect(MIX_CHANNEL_POST, sound_effect_gargle); } if ((se_mask & se_reverb)&&(!(sound_effects & se_reverb))) { Mix_UnregisterEffect(MIX_CHANNEL_POST, sound_effect_reverb); } if ((se_mask & se_compressor)&&(!(sound_effects & se_compressor))) { Mix_UnregisterEffect(MIX_CHANNEL_POST, sound_effect_compressor); } if ((se_mask & se_equalizer)&&(!(sound_effects & se_equalizer))) { Mix_UnregisterEffect(MIX_CHANNEL_POST, sound_effect_equalizer); } } return 0; }
LRESULT MusPlayer_WinAPI::MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_HSCROLL: { if(m_self->m_volume == (HWND)lParam) { switch(LOWORD(wParam)) { case TB_ENDTRACK: case TB_THUMBPOSITION: case TB_THUMBTRACK: case SB_LEFT: case SB_RIGHT: DWORD dwPos;// current position of slider dwPos = SendMessageW(m_self->m_volume, TBM_GETPOS, 0, 0); SendMessageW(m_self->m_volume, TBM_SETPOS, (WPARAM)TRUE, //redraw flag (LPARAM)dwPos); m_self->on_volume_valueChanged(dwPos); break; default: break; } } break; } case WM_COMMAND: { switch(HIWORD(wParam)) { case BN_CLICKED: { switch( LOWORD(wParam) ) { case CMD_Open: m_self->on_open_clicked(); break; case CMD_Play: m_self->on_play_clicked(); break; case CMD_Stop: m_self->on_stop_clicked(); break; case CMD_SetDefault: m_self->on_resetDefaultADLMIDI_clicked(); break; case CMD_RecordWave: { BOOL checked = IsDlgButtonChecked(hWnd, CMD_RecordWave); if (checked) { CheckDlgButton(hWnd, CMD_RecordWave, BST_UNCHECKED); m_self->on_recordWav_clicked(false); } else { CheckDlgButton(hWnd, CMD_RecordWave, BST_CHECKED); m_self->on_recordWav_clicked(true); } break; } case CMD_Reverb: { if (PGE_MusicPlayer::reverbEnabled) { CheckMenuItem(m_self->m_contextMenu, CMD_Reverb, MF_UNCHECKED); Mix_UnregisterEffect(MIX_CHANNEL_POST, reverbEffect); PGE_MusicPlayer::reverbEnabled = false; } else { CheckMenuItem(m_self->m_contextMenu, CMD_Reverb, MF_CHECKED); Mix_RegisterEffect(MIX_CHANNEL_POST, reverbEffect, reverbEffectDone, NULL); PGE_MusicPlayer::reverbEnabled = true; } break; } case CMD_ShowLicense: { ShellExecuteW(0, 0, L"http://www.gnu.org/licenses/gpl", 0, 0 , SW_SHOW); break; } case CMD_ShowSource: { ShellExecuteW(0, 0, L"https://github.com/WohlSoft/PGE-Project", 0, 0 , SW_SHOW); break; } default: break; } break; } } break; } case WM_DROPFILES: { HDROP hDropInfo = (HDROP)wParam; wchar_t sItem[MAX_PATH]; memset(sItem, 0, MAX_PATH*sizeof(wchar_t)); if(DragQueryFileW(hDropInfo, 0, (LPWSTR)sItem, sizeof(sItem))) { m_self->openMusicByArg(Wstr2Str(sItem)); } DragFinish(hDropInfo); break; } case WM_CONTEXTMENU: { SetForegroundWindow(hWnd); TrackPopupMenu(m_self->m_contextMenu,TPM_RIGHTBUTTON|TPM_TOPALIGN|TPM_LEFTALIGN, LOWORD( lParam ), HIWORD( lParam ), 0, hWnd, NULL); break; } //Инфо о минимальном и максимальном размере окна case WM_GETMINMAXINFO: { MINMAXINFO *minMax = (MINMAXINFO*)lParam; minMax->ptMinTrackSize.x = 350; minMax->ptMinTrackSize.y = m_self->m_height; break; } case WM_CREATE: { m_self->initUI(hWnd); break; } //Окно было закрыто case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hWnd, msg, wParam, lParam); }