Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
void CPpcMainWnd::OnPlayPlayStop()
{
	if (MAP_GetStatus(m_hMap) == MAP_STATUS_STOP)
		OnPlayPlayPause();
	else 
		OnPlayStop();
}
Ejemplo n.º 3
0
void CMainWnd::OnPlayPlayPause()
{
	if (MAP_GetStatus(m_hMap) == MAP_STATUS_STOP) {
		Play();
	}
	else 
		Pause();
}
Ejemplo n.º 4
0
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();
}
Ejemplo n.º 5
0
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();
}
Ejemplo n.º 6
0
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();
	}
}