void CmdIntelDlg::OnNews(AWEvent* e) { CombatEvent* event = 0; int index = lst_news->GetSelection(); if (index >= 0) { event = (CombatEvent*) lst_news->GetItemData(index, 0); } if (event) { Text info("<font Limerick12><color ffff80>"); info += event->Title(); info += "<font Verdana><color ffffff>\n\n"; info += event->Information(); txt_news->SetText(info); txt_news->EnsureVisible(0); lst_news->SetItemText(index, 0, " "); if (img_news) { if (event->Image().Width() >= 64) img_news->SetPicture(event->Image()); else img_news->SetPicture(bmp_default); } if (btn_play) { if (event->SceneFile() && *event->SceneFile()) btn_play->Show(); else btn_play->Hide(); } if (!event->Visited() && btn_play->IsEnabled()) OnPlay(0); event->SetVisited(true); } else { txt_news->SetText(""); if (img_news) img_news->SetPicture(bmp_default); if (btn_play) btn_play->Hide(); } }
void OpenMedia(TCHAR *path) { SetWindowText(g_stTime, _T("00:00")); SetScrollPos(g_sbTime, SB_CTL, 0, false); //move time bar position to 0 if (!g_pPlayer->Open(path)) { MessageBox(g_hMain, _T("File does not exist\nor is not supported"), _T("Error"), MB_OK); return; } g_nDuration = g_pPlayer->GetDuration() / 100; //duration in 1/10 sec SetScrollRange(g_sbTime, SB_CTL, 0, g_nDuration, true); //set time bar range OnPlay(); //start playing }
void APalette::OnKeyEvent(wxKeyEvent & event) { if (event.ControlDown()) { event.Skip(); return; } if (event.KeyCode() == WXK_SPACE) { if (gAudioIO->IsBusy()) { SetPlay(false); SetStop(true); OnStop(); } else { OnPlay(); SetPlay(true); SetStop(false); } } }
BOOL CBMMp3::OnPlay(BOOL Looping) { if(m_bInited&&m_bIsLoadMp3) { if(m_bIsPlaying) { OnStop(); m_bLooping = Looping; return OnPlay(Looping); } m_bLooping = Looping; if(FAILED(m_pMediaControl->Run())) return FALSE; SetNotifyWindow(WM_DSHOW_NOTIFY,0x00); m_bIsPlaying = TRUE; } else return FALSE; return TRUE; }
/*---------------------------------------------------------------------- | PLT_MediaRenderer::OnAction +---------------------------------------------------------------------*/ NPT_Result PLT_MediaRenderer::OnAction(PLT_ActionReference& action, NPT_SocketInfo* info /* = NULL */) { NPT_COMPILER_UNUSED(info); /* parse the action name */ NPT_String name = action->GetActionDesc()->GetName(); /* Is it a ConnectionManager Service Action ? */ if (name.Compare("GetCurrentConnectionIDs", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetProtocolInfo", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetCurrentConnectionInfo", true) == 0) { return OnGetCurrentConnectionInfo(action); } /* Is it a AVTransport Service Action ? */ // since all actions take an instance ID and we only support 1 instance // verify that the Instance ID is 0 and return an error here now if not NPT_String serviceType = action->GetActionDesc()->GetService()->GetServiceType(); if (serviceType.Compare("urn:schemas-upnp-org:service:AVTransport:1", true) == 0) { if (NPT_FAILED(action->VerifyArgumentValue("InstanceID", "0"))) { action->SetError(802,"Not valid InstanceID."); return NPT_FAILURE; } } if (name.Compare("GetCurrentTransportActions", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetDeviceCapabilities", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetMediaInfo", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetPositionInfo", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetTransportInfo", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetTransportSettings", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("Next", true) == 0) { return OnNext(action); } if (name.Compare("Pause", true) == 0) { return OnPause(action); } if (name.Compare("Play", true) == 0) { return OnPlay(action); } if (name.Compare("Previous", true) == 0) { return OnPrevious(action); } if (name.Compare("Seek", true) == 0) { return OnSeek(action); } if (name.Compare("Stop", true) == 0) { return OnStop(action); } if (name.Compare("SetAVTransportURI", true) == 0) { return OnSetAVTransportURI(action); } if (name.Compare("SetPlayMode", true) == 0) { return OnSetPlayMode(action); } action->SetError(401,"No Such Action."); return NPT_FAILURE; }
LRESULT MainWindow::OnReceiveMessage(UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; HRESULT hr; switch (message) { case WM_CREATE: hr = OnCreate(); if (FAILED(hr)) { // Fail and quit. NotifyError(m_hwnd, TEXT("Cannot initialize the application."), hr); return -1; } break; case WM_SIZE: OnSize(); break; case WM_PAINT: OnPaint(); break; case WM_MOVE: OnPaint(); break; case WM_DISPLAYCHANGE: m_pPlayer->DisplayModeChanged(); break; case WM_ERASEBKGND: return 1; case WM_DESTROY: PostQuitMessage(0); break; case WM_TIMER: OnTimer(); break; case WM_NOTIFY: OnWmNotify((NMHDR*)lParam); break; case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); switch (wmId) { case IDM_EXIT: DestroyWindow(m_hwnd); break; case ID_FILE_OPENFILE: OnFileOpen(); break; case IDC_BUTTON_PLAY: OnPlay(); break; case IDC_BUTTON_STOP: OnStop(); break; case IDC_BUTTON_PAUSE: OnPause(); break; case IDC_BUTTON_MUTE: OnMute(); break; } break; // Private filter graph message. case WM_GRAPH_EVENT: hr = m_pPlayer->HandleGraphEvent(this); break; default: return BaseWindow::OnReceiveMessage(message, wParam, lParam); } return 0; }
/*---------------------------------------------------------------------- | PLT_MediaRenderer::OnAction +---------------------------------------------------------------------*/ NPT_Result PLT_MediaRenderer::OnAction(PLT_ActionReference& action, const PLT_HttpRequestContext& context) { NPT_COMPILER_UNUSED(context); /* parse the action name */ NPT_String name = action->GetActionDesc().GetName(); // since all actions take an instance ID and we only support 1 instance // verify that the Instance ID is 0 and return an error here now if not NPT_String serviceType = action->GetActionDesc().GetService()->GetServiceType(); if (serviceType.Compare("urn:schemas-upnp-org:service:AVTransport:1", true) == 0) { if (NPT_FAILED(action->VerifyArgumentValue("InstanceID", "0"))) { action->SetError(718, "Not valid InstanceID"); return NPT_FAILURE; } } serviceType = action->GetActionDesc().GetService()->GetServiceType(); if (serviceType.Compare("urn:schemas-upnp-org:service:RenderingControl:1", true) == 0) { if (NPT_FAILED(action->VerifyArgumentValue("InstanceID", "0"))) { action->SetError(702, "Not valid InstanceID"); return NPT_FAILURE; } } /* Is it a ConnectionManager Service Action ? */ if (name.Compare("GetCurrentConnectionInfo", true) == 0) { return OnGetCurrentConnectionInfo(action); } /* Is it a AVTransport Service Action ? */ if (name.Compare("Next", true) == 0) { return OnNext(action); } if (name.Compare("Pause", true) == 0) { return OnPause(action); } if (name.Compare("Play", true) == 0) { return OnPlay(action); } if (name.Compare("Previous", true) == 0) { return OnPrevious(action); } if (name.Compare("Seek", true) == 0) { return OnSeek(action); } if (name.Compare("Stop", true) == 0) { return OnStop(action); } if (name.Compare("SetAVTransportURI", true) == 0) { return OnSetAVTransportURI(action); } if (name.Compare("SetNextAVTransportURI", true) == 0) { return OnSetNextAVTransportURI(action); } if (name.Compare("SetPlayMode", true) == 0) { return OnSetPlayMode(action); } /* Is it a RendererControl Service Action ? */ if (name.Compare("SetVolume", true) == 0) { return OnSetVolume(action); } if (name.Compare("SetVolumeDB", true) == 0) { return OnSetVolumeDB(action); } if (name.Compare("GetVolumeDBRange", true) == 0) { return OnGetVolumeDBRange(action); } if (name.Compare("SetMute", true) == 0) { return OnSetMute(action); } // other actions rely on state variables NPT_CHECK_LABEL_WARNING(action->SetArgumentsOutFromStateVariable(), failure); return NPT_SUCCESS; failure: action->SetError(401,"No Such Action."); return NPT_FAILURE; }
DMainWindow::DMainWindow(QWidget* parent_widget) : QMainWindow(parent_widget) { m_ui = std::make_unique<Ui::DMainWindow>(); m_ui->setupUi(this); Resources::Init(); UpdateIcons(); setWindowIcon(Resources::GetIcon(Resources::DOLPHIN_LOGO)); // Create the GameList m_game_tracker = new DGameTracker(this); m_ui->centralWidget->addWidget(m_game_tracker); m_game_tracker->ScanForGames(); m_game_tracker->SelectLastBootedGame(); // Setup the GameList style switching actions QActionGroup* gamelistGroup = new QActionGroup(this); gamelistGroup->addAction(m_ui->actionListView); gamelistGroup->addAction(m_ui->actionTreeView); gamelistGroup->addAction(m_ui->actionGridView); gamelistGroup->addAction(m_ui->actionIconView); // TODO: save/load this from user prefs! m_ui->actionListView->setChecked(true); OnGameListStyleChanged(); // Connect all the signals/slots connect(this, SIGNAL(CoreStateChanged(Core::EState)), this, SLOT(OnCoreStateChanged(Core::EState))); connect(m_ui->actionOpen, SIGNAL(triggered()), this, SLOT(OnOpen())); connect(m_ui->actionBrowse, SIGNAL(triggered()), this, SLOT(OnBrowse())); connect(m_ui->actionExit, SIGNAL(triggered()), this, SLOT(OnExit())); connect(m_ui->actionListView, SIGNAL(triggered()), this, SLOT(OnGameListStyleChanged())); connect(m_ui->actionTreeView, SIGNAL(triggered()), this, SLOT(OnGameListStyleChanged())); connect(m_ui->actionGridView, SIGNAL(triggered()), this, SLOT(OnGameListStyleChanged())); connect(m_ui->actionIconView, SIGNAL(triggered()), this, SLOT(OnGameListStyleChanged())); connect(m_ui->actionPlay, SIGNAL(triggered()), this, SLOT(OnPlay())); connect(m_ui->actionPlay_mnu, SIGNAL(triggered()), this, SLOT(OnPlay())); connect(m_game_tracker, SIGNAL(StartGame()), this, SLOT(OnPlay())); connect(m_ui->actionStop, SIGNAL(triggered()), this, SLOT(OnStop())); connect(m_ui->actionStop_mnu, SIGNAL(triggered()), this, SLOT(OnStop())); connect(m_ui->actionReset, SIGNAL(triggered()), this, SLOT(OnReset())); connect(m_ui->actionWebsite, SIGNAL(triggered()), this, SLOT(OnOpenWebsite())); connect(m_ui->actionOnlineDocs, SIGNAL(triggered()), this, SLOT(OnOpenDocs())); connect(m_ui->actionGitHub, SIGNAL(triggered()), this, SLOT(OnOpenGitHub())); connect(m_ui->actionSystemInfo, SIGNAL(triggered()), this, SLOT(OnOpenSystemInfo())); connect(m_ui->actionAbout, SIGNAL(triggered()), this, SLOT(OnOpenAbout())); connect(m_ui->actionAboutQt, SIGNAL(triggered()), this, SLOT(OnOpenAboutQt())); // Update GUI items emit CoreStateChanged(Core::CORE_UNINITIALIZED); // Platform-specific stuff #ifdef Q_OS_MACX m_ui->toolbar->setMovable(false); #endif }
NPT_Result GPAC_MediaRenderer::OnAction(PLT_ActionReference& action, const PLT_HttpRequestContext& context) { NPT_COMPILER_UNUSED(context); /* parse the action name */ NPT_String name = action->GetActionDesc().GetName(); m_ip_src = context.GetRemoteAddress().GetIpAddress().ToString(); /* Is it a ConnectionManager Service Action ? */ if (name.Compare("GetCurrentConnectionIDs", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetProtocolInfo", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetCurrentConnectionInfo", true) == 0) { return OnGetCurrentConnectionInfo(action); } if (name.Compare("StopForMigration", true) == 0) { NPT_String res = m_pUPnP->OnMigrate(); m_pMigrationService->SetStateVariable("MigrationStatus", "OK"); m_pMigrationService->SetStateVariable("MigrationMetaData", res); if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } /* Is it a AVTransport Service Action ? */ // since all actions take an instance ID and we only support 1 instance // verify that the Instance ID is 0 and return an error here now if not NPT_String serviceType = action->GetActionDesc().GetService()->GetServiceType(); if (serviceType.Compare("urn:schemas-upnp-org:service:AVTransport:1", true) == 0) { if (NPT_FAILED(action->VerifyArgumentValue("InstanceID", "0"))) { action->SetError(802,"Not valid InstanceID."); return NPT_FAILURE; } } if (name.Compare("GetCurrentTransportActions", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetDeviceCapabilities", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetMediaInfo", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetPositionInfo", true) == 0) { if (m_pUPnP->m_pTerm->root_scene) { char szVal[100]; m_pAVService->SetStateVariable("CurrentTrack", "0"); format_time_string(szVal, m_Duration); m_pAVService->SetStateVariable("CurrentTrackDuration", szVal); m_pAVService->SetStateVariable("CurrentTrackMetadata", ""); m_pAVService->SetStateVariable("CurrentTrackURI", ""); format_time_string(szVal, m_Time); m_pAVService->SetStateVariable("RelativeTimePosition", szVal); m_pAVService->SetStateVariable("AbsoluteTimePosition", szVal); m_pAVService->SetStateVariable("RelativeCounterPosition", "2147483647"); // means NOT_IMPLEMENTED m_pAVService->SetStateVariable("AbsoluteCounterPosition", "2147483647"); // means NOT_IMPLEMENTED } else { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } } return NPT_SUCCESS; } if (name.Compare("GetTransportInfo", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("GetTransportSettings", true) == 0) { if (NPT_FAILED(action->SetArgumentsOutFromStateVariable())) { return NPT_FAILURE; } return NPT_SUCCESS; } if (name.Compare("Next", true) == 0) { return OnNext(action); } if (name.Compare("Pause", true) == 0) { return OnPause(action); } if (name.Compare("Play", true) == 0) { return OnPlay(action); } if (name.Compare("Previous", true) == 0) { return OnPrevious(action); } if (name.Compare("Seek", true) == 0) { return OnSeek(action); } if (name.Compare("Stop", true) == 0) { return OnStop(action); } if (name.Compare("SetAVTransportURI", true) == 0) { return OnSetAVTransportURI(action); } if (name.Compare("SetPlayMode", true) == 0) { return OnSetPlayMode(action); } /* Is it a RendererControl Service Action ? */ if (serviceType.Compare("urn:schemas-upnp-org:service:RenderingControl:1", true) == 0) { /* we only support master channel */ if (NPT_FAILED(action->VerifyArgumentValue("Channel", "Master"))) { action->SetError(402,"Invalid Args."); return NPT_FAILURE; } } if (name.Compare("GetVolume", true) == 0) { NPT_CHECK_SEVERE(action->SetArgumentsOutFromStateVariable()); return NPT_SUCCESS; } if (name.Compare("GetMute", true) == 0) { NPT_CHECK_SEVERE(action->SetArgumentsOutFromStateVariable()); return NPT_SUCCESS; } if (name.Compare("SetVolume", true) == 0) { return OnSetVolume(action); } if (name.Compare("SetMute", true) == 0) { return OnSetMute(action); } action->SetError(401,"No Such Action."); return NPT_FAILURE; }
LRESULT CFlashPlayerDlg::OnPlayM(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { OnPlay(); return 0; }
void QmitkToFRecorderWidget::CreateConnections() { if ( m_Controls ) { connect( (QObject*)(m_Controls->m_PlayButton), SIGNAL(clicked()),(QObject*) this, SLOT(OnPlay()) ); connect( (QObject*)(m_Controls->m_StopButton), SIGNAL(clicked()),(QObject*) this, SLOT(OnStop()) ); connect( (QObject*)(m_Controls->m_StartRecordingButton), SIGNAL(clicked()),(QObject*) this, SLOT(OnStartRecorder()) ); connect( (QObject*)(m_Controls->m_RecordModeComboBox), SIGNAL(currentIndexChanged(int)),(QObject*) this, SLOT(OnChangeRecordModeComboBox(int)) ); connect(this, SIGNAL(RecordingStopped()), this, SLOT(OnRecordingStopped()), Qt::BlockingQueuedConnection); } }
////////////////////////////////////////////////////////////////////////// // XMS main event handler DJ_Void XMSEventHandler(DJ_Void *u32EsrParam) { if (g_pDlg == NULL) //g_pDlg = (CXMSVoIPDemoDlg *)AfxGetMainWnd(); g_pDlg = (CXMSVoIPDemoDlg *)theApp.m_pMainWnd; Acs_Evt_t *pAcsEvt = (Acs_Evt_t *)u32EsrParam; // TRACE(_T("EvtType=%x\n"), pAcsEvt->m_s32EventType); // dispatch event by type switch (pAcsEvt->m_s32EventType) { case XMS_EVT_OPEN_STREAM: OnOpenStream(pAcsEvt); break; case XMS_EVT_QUERY_DEVICE: OnQueryDevice(pAcsEvt); break; case XMS_EVT_QUERY_DEVICE_END: OnQueryDeviceEnd(pAcsEvt); break; case XMS_EVT_OPEN_DEVICE: OnOpenDevice(pAcsEvt); break; case XMS_EVT_CLOSE_DEVICE: OnCloseDevice(pAcsEvt); break; case XMS_EVT_DEVICESTATE: OnDeviceState(pAcsEvt); break; case XMS_EVT_CALLOUT: OnCallOut(pAcsEvt); break; case XMS_EVT_CALLIN: OnCallIn(pAcsEvt); break; case XMS_EVT_ALERTCALL: OnAlertCall(pAcsEvt); break; case XMS_EVT_ANSWERCALL: OnAnswerCall(pAcsEvt); break; case XMS_EVT_CLEARCALL: OnClearCall(pAcsEvt); break; case XMS_EVT_LINKDEVICE: OnLinkDevice(pAcsEvt); break; case XMS_EVT_UNLINKDEVICE: OnUnlinkDevice(pAcsEvt); break; case XMS_EVT_PLAY: OnPlay(pAcsEvt); break; case XMS_EVT_SENDIODATA: OnSendIOData(pAcsEvt); break; case XMS_EVT_RECVIODATA: OnRecvIOData(pAcsEvt); break; case XMS_EVT_JOINTOCONF: OnJoinConf(pAcsEvt); break; case XMS_EVT_GETPARAM: OnGetParam(pAcsEvt); break; default: break; } }
bool CGUIDialogBoxeeCtx::HandleQualityList() { const CFileItemList* linksFileItemList = m_item.GetLinksList(); if (!linksFileItemList) { return true; } if (linksFileItemList->Size() == 1) { return true; } int FocusedItem = 0; m_pDlgVideoQuality = (CGUIDialogBoxeeVideoQuality*)g_windowManager.GetWindow(WINDOW_DIALOG_BOXEE_VIDEO_QUALITY); m_pDlgVideoQuality->Reset(); for (int i=0; i<linksFileItemList->Size(); i++) { CFileItemPtr linkFileItemToAdd = linksFileItemList->Get(i); m_pDlgVideoQuality->Add((*linkFileItemToAdd)); // if the user ask for a different quality - switch to a different link if (m_item.GetPropertyInt("quality") ==linkFileItemToAdd->GetPropertyInt("quality")) { FocusedItem = i; } } m_pDlgVideoQuality->ChangeDialogType(LIST_CVQ_DIALOG); m_pDlgVideoQuality->SetFocusedItem(FocusedItem); m_pDlgVideoQuality->DoModal(); if (m_pDlgVideoQuality->IsCanceled()) { return false; } int chosenItemPos = m_pDlgVideoQuality->GetSelectedItemPos(); CFileItemPtr chosenItem = linksFileItemList->Get(chosenItemPos); if(m_pDlgVideoQuality->GetSavePerference()) { BOXEE::Boxee::GetInstance().GetMetadataEngine().UpdateProviderPerf(chosenItem->GetProperty("link-provider"),chosenItem->GetPropertyInt("quality")); } // if the user ask for a different quality - switch to a different link if (m_item.GetPropertyInt("quality") !=chosenItem->GetPropertyInt("quality")) { CLog::Log(LOGDEBUG,"CGUIDialogBoxeeCtx::HandleQualityList change quality to %d", chosenItem->GetPropertyInt("quality")); if (chosenItem.get() == NULL) { CLog::Log(LOGERROR,"CGUIDialogBoxeeMediaAction::OnPlayMedia choose NULL item"); return false; } // copy the relevant properties from the chosen item m_item.m_strPath = chosenItem->m_strPath; m_item.SetProperty("link-boxeetype", chosenItem->GetProperty("link-boxeetype")); m_item.SetProperty("link-provider", chosenItem->GetProperty("link-provider")); m_item.SetProperty("link-providername", chosenItem->GetProperty("link-providername")); m_item.SetProperty("link-providerthumb", chosenItem->GetProperty("link-providerthumb")); m_item.SetProperty("link-countrycodes", chosenItem->GetProperty("link-countrycodes")); m_item.SetProperty("link-countryrel", chosenItem->GetPropertyBOOL("link-countryrel")); m_item.SetProperty("quality-lbl", chosenItem->GetProperty("quality-lbl")); m_item.SetProperty("quality", chosenItem->GetPropertyInt("quality")); OnPlay(); } return true; }
//------------------------------------------------------------------------------ // Name: DlgProc() // Desc: Dialog box procedure. //------------------------------------------------------------------------------ INT_PTR CALLBACK DlgProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) { HRESULT hr = S_OK; HICON hIcon = NULL; RECT rect; switch( uMsg ) { case WM_INITDIALOG: g_hwndDialog = hwndDlg; // // Load the application icon // hIcon = LoadIcon( g_hInst, MAKEINTRESOURCE( IDI_WMAICON ) ); if( hIcon ) { SendMessage( hwndDlg, WM_SETICON, ICON_SMALL, ( LPARAM )hIcon ); SendMessage( hwndDlg, WM_SETICON, ICON_BIG, ( LPARAM )hIcon ); } GetWindowRect( hwndDlg, &rect ); // // Store the Window height in a global variable for future reference // g_iDlgHeight = rect.bottom - rect.top; // // Ready to open and play a file // SetCurrentStatus( READY ); // // Create and initialize the audio player // g_pAudioplay = new CAudioPlay; if( NULL == g_pAudioplay ) { // // Creation has failed. Close the application. // SendMessage( hwndDlg, WM_CLOSE, 0,0 ); return TRUE; } hr = g_pAudioplay->Init(); if( FAILED(hr) ) { // // Init has failed. Close the application. // SendMessage( hwndDlg, WM_CLOSE, 0,0 ); } return TRUE; case WM_COMMAND: switch( LOWORD( wParam ) ) { case IDC_FILENAME: if( EN_CHANGE == HIWORD( wParam ) ) { // // Filename has been changed // Use this notification for enabling or disabling the Play button // TCHAR tszFileName[ MAX_PATH ]; GetDlgItemText( hwndDlg, IDC_FILENAME, tszFileName, MAX_PATH ); // // If filename is not empty, enable the Play button // if( _tcslen( tszFileName) > 0 ) { EnableWindow( GetDlgItem( hwndDlg, IDC_PLAY ), TRUE ); SetCurrentStatus( CLOSED ); } else { EnableWindow( GetDlgItem( hwndDlg, IDC_PLAY ), FALSE ); } SetCurrentStatus( READY ); return TRUE; } return FALSE; case IDC_OPEN: // // Show the OpenFile dialog // if( ShowOpenFileDialog() ) { // // Display the file name // SetDlgItemText( hwndDlg, IDC_FILENAME, g_ptszFileName ); SetFocus( GetDlgItem( hwndDlg, IDC_PLAY ) ); } return TRUE; case IDC_STOP: SetCurrentStatus( STOPPING ); // // Stop the audio player // if( NULL != g_pAudioplay ) { hr = g_pAudioplay->Stop(); if( FAILED( hr ) ) { SetCurrentStatus( g_Status ); TCHAR tszErrMesg[128]; (void)StringCchPrintf( tszErrMesg, ARRAYSIZE(tszErrMesg), _T( "Unable to Stop (hr=%#X)" ), hr ); MessageBox( hwndDlg, tszErrMesg, ERROR_DIALOG_TITLE, MB_OK ); } } return TRUE; case IDC_PAUSE: // // Pause the audio player // if( NULL != g_pAudioplay ) { hr = g_pAudioplay->Pause(); if( FAILED( hr ) ) { TCHAR tszErrMesg[128]; (void)StringCchPrintf( tszErrMesg, ARRAYSIZE(tszErrMesg), _T("Unable to Pause (hr=%#X)"), hr ); MessageBox( hwndDlg, tszErrMesg, ERROR_DIALOG_TITLE, MB_OK ); } else { SetCurrentStatus( PAUSE ); } } break; case IDC_PLAY: return( OnPlay() ); case IDCANCEL: // // Close the player before exiting application // if( NULL != g_pAudioplay ) { g_pAudioplay->Exit(); g_pAudioplay->Release(); } EndDialog( hwndDlg, wParam ); return TRUE; } break; case WM_HSCROLL: if( NULL == g_pAudioplay ) { break; } // // Seek only when the file is seekable // if( ( LOWORD( wParam ) == TB_THUMBTRACK || LOWORD( wParam ) == TB_BOTTOM || LOWORD( wParam ) == TB_PAGEDOWN || LOWORD( wParam ) == TB_PAGEUP || LOWORD( wParam ) == TB_TOP ) && g_pAudioplay->IsSeekable() ) { // // Set g_IsSeeking, to be referenced when thumb tracking is over // g_IsSeeking = TRUE; } else if( LOWORD( wParam ) == TB_ENDTRACK && g_pAudioplay->IsSeekable() && g_IsSeeking ) { DWORD_PTR dwPos = SendDlgItemMessage( hwndDlg, IDC_SLIDER, TBM_GETPOS, 0, 0 ); // // Start the file from the new position // hr = g_pAudioplay->Start( ( QWORD )dwPos * 10000 ); if( FAILED ( hr ) ) { g_IsSeeking = FALSE; } } break; } return FALSE; }