void CMainWnd::OnPlayStop() { // レジューム用の情報を取得しておく if (m_pOptions->m_fResume && MAP_GetStatus(m_hMap) != MAP_STATUS_STOP) { m_pOptions->m_nResumeTime = MAP_GetCurrent(m_hMap); } if (MAP_GetStatus(m_hMap) == MAP_STATUS_STOP) MAP_AudioDeviceClose(m_hMap); // 停止処理 Stop(); // シャッフルフラグをリセット if (m_pOptions->m_fShuffle) { ResetShuffle(); FILEINFO* p = (FILEINFO*)m_pListFile->GetAt(m_nCurrent); if (p) p->fShuffle = TRUE; } // レジュームの場合時刻をセット if (m_pOptions->m_fResume) { MAP_Seek(m_hMap, m_pOptions->m_nResumeTime); m_pOptions->m_nResumeTime = 0; } UpdateTime(); UpdateStatus(); UpdateStreamTitle(); }
void CPpcMainWnd::OnPlayPlayStop() { if (MAP_GetStatus(m_hMap) == MAP_STATUS_STOP) OnPlayPlayPause(); else OnPlayStop(); }
void CMainWnd::OnPlayPlayPause() { if (MAP_GetStatus(m_hMap) == MAP_STATUS_STOP) { Play(); } else Pause(); }
void CMainWnd::OnPlayNext() { int nNext = GetNextIndex(); if (nNext == OPEN_NONE) return; BOOL fPlay = MAP_GetStatus(m_hMap) != MAP_STATUS_STOP; Open(nNext); if (fPlay) Play(); }
void CMainWnd::OnPlayPrev() { BOOL fPlay = MAP_GetStatus(m_hMap) != MAP_STATUS_STOP; // ファイル再生の時に再生時間が2秒以上なら先頭に // 2秒未満の場合は前の曲 FILEINFO* pInfo = GetInfo(GetCurrentFile()); if (pInfo && !IsURL(pInfo->szPath)) { long lCurrent = MAP_GetCurrent(m_hMap); if (fPlay && lCurrent > 2000) { MAP_Seek(m_hMap, 0); return; } } int nPrev = GetPrevIndex(); if (nPrev == OPEN_NONE) return; Open(nPrev); if (fPlay) Play(); }
void CPpcMainWnd::OnTimer(UINT uID) { CMainWnd::OnTimer(uID); if (uID == ID_TIMER_DISPCHECK) { // 自動画面OFFのチェック if (!m_pOptions) return; // フラグのチェック if (!((CPpcOptions*)m_pOptions)->m_nDispAutoOff) { m_dwLastOperation = GetTickCount(); return; } // フォーカスがない場合 if (!m_fActive) { m_dwLastOperation = GetTickCount(); return; } // バッテリ状態チェック if (((CPpcOptions*)m_pOptions)->m_fDispEnableBattery) { SYSTEM_POWER_STATUS_EX spse; GetSystemPowerStatusEx(&spse, FALSE); if (spse.ACLineStatus == 1) { m_dwLastOperation = GetTickCount(); return; } } // 既にオフの場合 if (!GetDisplayStatus()) { m_dwLastOperation = GetTickCount(); return; } // 再生中のチェック if (MAP_GetStatus(m_hMap) != MAP_STATUS_PLAY) { m_dwLastOperation = GetTickCount(); return; } // カウントUp & オフ if (((int)(GetTickCount() - m_dwLastOperation) / 1000) >= ((CPpcOptions*)m_pOptions)->m_nDispAutoOff) { TurnOffDisplay(); m_fDisplay = FALSE; m_dwLastOperation = GetTickCount(); } } else if (uID == ID_TIMER_DISPSTATE) { // ステータス更新のために呼んでおく BOOL fRet = GetDisplayStatus(); if (fRet && m_fDisplay != fRet) { InvalidateRect(m_hWnd, NULL, TRUE); UpdateWindow(m_hWnd); } m_fDisplay = fRet; } else if (uID == ID_TIMER_HOLD) { KillTimer(m_hWnd, ID_TIMER_HOLD); m_fDrawHold = FALSE; UpdateTitle(); } }