//----------------------------------------------------------------------------- // Name: MainDlgProc() // Desc: Handles dialog messages //----------------------------------------------------------------------------- INT_PTR CALLBACK MainDlgProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { HRESULT hr; switch( msg ) { case WM_INITDIALOG: OnInitDialog( hDlg ); break; case WM_COMMAND: switch( LOWORD(wParam) ) { case IDC_SOUNDFILE: OnOpenSoundFile( hDlg ); break; case IDCANCEL: EndDialog( hDlg, IDCANCEL ); break; case IDC_PLAY: // The 'play'/'pause' button was pressed if( FAILED( hr = OnPlaySound( hDlg ) ) ) { DXTRACE_ERR_MSGBOX( TEXT("OnPlaySound"), hr ); MessageBox( hDlg, "Error playing DirectSound buffer. " "Sample will now exit.", "DirectSound Sample", MB_OK | MB_ICONERROR ); EndDialog( hDlg, IDABORT ); } break; case IDC_STOP: if( g_pSound ) { g_pSound->Stop(); g_pSound->Reset(); } EnablePlayUI( hDlg, TRUE ); break; case IDHELP: DXUtil_LaunchReadme( hDlg ); break; default: return FALSE; // Didn't handle message } break; case WM_TIMER: OnTimer( hDlg ); break; case WM_DESTROY: // Cleanup everything KillTimer( hDlg, 1 ); SAFE_DELETE( g_pSound ); SAFE_DELETE( g_pSoundManager ); break; default: return FALSE; // Didn't handle message } return TRUE; // Handled message }
int PAKViewer::handleEvent (mxEvent *event) { switch (event->event) { case mxEvent::Action: { switch (event->action) { case IDC_PAKVIEWER: // tvPAK if (event->flags & mxEvent::RightClicked) { pmMenu->setEnabled (1, strstr (d_currLumpName, ".mdl") != 0); pmMenu->setEnabled (2, strstr (d_currLumpName, ".tga") != 0); pmMenu->setEnabled (3, strstr (d_currLumpName, ".tga") != 0); pmMenu->setEnabled (4, strstr (d_currLumpName, ".wav") != 0); int ret = pmMenu->popup (tvPAK, event->x, event->y); switch (ret) { case 1: OnLoadModel (); break; case 2: OnLoadTexture (0); break; case 3: OnLoadTexture (1); break; case 4: OnPlaySound (); break; case 5: OnExtract (); break; } } else if (event->flags & mxEvent::DoubleClicked) { OnPAKViewer (); char e[16]; strncpy (e, mx_getextension (d_currLumpName), 16); int mode = g_FileAssociation->getMode (&e[1]); if (mode == -1) return 1; char *program = g_FileAssociation->getProgram (&e[1]); #ifdef WIN32 if (mode == 0) { char str[256]; _makeTempFileName (str, e); if (!pak_ExtractFile (d_pakFile, d_currLumpName, str)) mxMessageBox (this, "Error extracting from PAK file.", g_appTitle, MX_MB_OK | MX_MB_ERROR); else { if (program) { char path[256]; strcpy (path, program); strcat (path, " "); strcat (path, str); if ((int) WinExec (path, SW_SHOW) <= 32) mxMessageBox (this, "Error executing specified program.", g_appTitle, MX_MB_OK | MX_MB_ERROR); } } } // associated program else if (mode == 1) { char str[256]; _makeTempFileName (str, e); if (!pak_ExtractFile (d_pakFile, d_currLumpName, str)) mxMessageBox (this, "Error extracting from PAK file.", g_appTitle, MX_MB_OK | MX_MB_ERROR); else if ((int) ShellExecute ((HWND) getHandle (), "open", str, 0, 0, SW_SHOW) <= 32) mxMessageBox (this, "Error executing document with associated program.", g_appTitle, MX_MB_OK | MX_MB_ERROR); } // HLMV default else #endif if (mode == 2) { if (!strcmp (e, ".mdl")) OnLoadModel (); else if (!strcmp (e, ".tga")) OnLoadTexture (0); else if (!strcmp (e, ".wav")) OnPlaySound (); return 1; } } return OnPAKViewer (); } // event->action } // mxEvent::Action break; case mxEvent::Size: { tvPAK->setBounds (0, 0, event->width, event->height); } // mxEvent::Size break; } // event->event return 1; }
//----------------------------------------------------------------------------- // Name: MainDlgProc() // Desc: Handles dialog messages //----------------------------------------------------------------------------- INT_PTR CALLBACK MainDlgProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { HRESULT hr; switch( msg ) { case WM_INITDIALOG: OnInitDialog( hDlg ); break; case WM_COMMAND: switch( LOWORD(wParam) ) { case IDC_SOUNDFILE: OnOpenSoundFile( hDlg ); break; case IDCANCEL: EndDialog( hDlg, IDCANCEL ); break; case IDC_PLAY: if( FAILED( hr = OnPlaySound( hDlg ) ) ) { DXTRACE_ERR( TEXT("OnPlaySound"), hr ); MessageBox( hDlg, "Error playing DirectSound buffer." "Sample will now exit.", "DirectSound Sample", MB_OK | MB_ICONERROR ); EndDialog( hDlg, IDABORT ); } break; case IDC_STOP: if( g_pSound ) { g_pSound->Stop(); g_pSound->Reset(); } // Update the UI controls to show the sound as stopped EnablePlayUI( hDlg, TRUE ); SetDlgItemText( hDlg, IDC_STATUS, TEXT("Sound stopped.") ); break; case IDC_DEFER: g_bDeferSettings = !g_bDeferSettings; OnSliderChanged( hDlg ); break; case IDC_APPLY: // Call the IDirectSound3DListener::CommitDeferredSettings // method to execute all of the deferred commands at once. // This is many times more efficent than recomputing everything // for every call. if( g_pDSListener ) g_pDSListener->CommitDeferredSettings(); break; default: return FALSE; // Didn't handle message } break; case WM_TIMER: if( wParam == IDT_MOVEMENT_TIMER ) OnMovementTimer( hDlg ); break; case WM_NOTIFY: OnSliderChanged( hDlg ); break; case WM_DESTROY: // Cleanup everything KillTimer( hDlg, 1 ); SAFE_RELEASE( g_pDSListener ); SAFE_RELEASE( g_pDS3DBuffer ); SAFE_DELETE( g_pSound ); SAFE_DELETE( g_pSoundManager ); break; default: return FALSE; // Didn't handle message } return TRUE; // Handled message }
//----------------------------------------------------------------------------- // Name: MainDlgProc() // Desc: Handles dialog messages //----------------------------------------------------------------------------- INT_PTR CALLBACK MainDlgProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { HRESULT hr; switch( msg ) { case WM_COMMAND: switch( LOWORD(wParam) ) { case IDCANCEL: EndDialog( hDlg, IDCANCEL ); break; case IDC_SOUNDFILE: OnOpenSoundFile( hDlg ); break; case IDC_PLAY: if( FAILED( hr = OnPlaySound( hDlg ) ) ) { DXTRACE_ERR( TEXT("OnPlaySound"), hr ); MessageBox( hDlg, "Error playing DirectSound buffer." "Sample will now exit.", "DirectSound Sample", MB_OK | MB_ICONERROR ); EndDialog( hDlg, IDABORT ); } break; case IDC_STOP: SAFE_RELEASE( g_pIGargle ); if( g_pSound ) { g_pSound->Stop(); g_pSound->Reset(); } break; case IDC_WAVEFORM_TRIANGLE: case IDC_WAVEFORM_SQUARE: OnEffectChanged( hDlg ); break; default: return FALSE; // Didn't handle message } break; case WM_TIMER: OnTimer( hDlg ); break; case WM_INITDIALOG: OnInitDialog( hDlg ); break; case WM_NOTIFY: OnEffectChanged( hDlg ); break; case WM_DESTROY: // Cleanup everything KillTimer( hDlg, 1 ); SAFE_RELEASE( g_pIGargle ); SAFE_DELETE( g_pSound ); SAFE_DELETE( g_pSoundManager ); break; default: return FALSE; // Didn't handle message } return TRUE; // Handled message }
//----------------------------------------------------------------------------- // Name: MainDlgProc() // Desc: Handles dialog messages //----------------------------------------------------------------------------- INT_PTR CALLBACK MainDlgProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { HRESULT hr; switch( msg ) { case WM_COMMAND: switch( LOWORD(wParam) ) { case IDCANCEL: EndDialog( hDlg, IDCANCEL ); break; case IDC_SOUNDFILE: OnOpenSoundFile( hDlg ); break; case IDC_PLAY: if( FAILED( hr = OnPlaySound( hDlg ) ) ) { DXTRACE_ERR_MSGBOX( TEXT("OnPlaySound"), hr ); MessageBox( hDlg, "Error playing DirectSound buffer." "Sample will now exit.", "DirectSound Sample", MB_OK | MB_ICONERROR ); EndDialog( hDlg, IDABORT ); } break; case IDC_STOP: if( g_pSound ) { g_pSound->Stop(); g_pSound->Reset(); } break; case IDC_MIX_DEFAULT: case IDC_MIX_HARDWARE: case IDC_MIX_SOFTWARE: case IDC_FOCUS_GLOBAL: case IDC_FOCUS_STICKY: case IDC_FOCUS_NORMAL: UpdateBehaviorText( hDlg ); break; case IDHELP: DXUtil_LaunchReadme( hDlg ); break; default: return FALSE; // Didn't handle message } break; case WM_TIMER: OnTimer( hDlg ); break; case WM_INITDIALOG: OnInitDialog( hDlg ); break; case WM_NOTIFY: OnSliderChanged( hDlg ); break; case WM_DESTROY: // Cleanup everything KillTimer( hDlg, 1 ); SAFE_DELETE( g_pSound ); SAFE_DELETE( g_pSoundManager ); break; default: return FALSE; // Didn't handle message } return TRUE; // Handled message }