コード例 #1
0
ファイル: LastFMServices.cpp プロジェクト: ddavison/Jaangle
void LastFMServices::Submit(LastFMSubmitTrack& track)
{
	ASSERT(m_state != ST_UnInitialized);
	//Check the track
	if (track.IsValid() && track.length >= 30)
	{
		if (track.unixTimeStamp == 0) // Automatically fix the "start playing" date if needed
		{
			track.unixTimeStamp = GetCurrentUnixTimeStamp();
			if (track.length < 480)
				track.unixTimeStamp -= (track.length/2);
			else
				track.unixTimeStamp -= 240;
		}
		CSingleLock lock(&m_cs);
		if (sMaxTracksOnQueue > m_jobs.size())
			m_jobs.push_back(track);
		if (m_pThread == NULL)
			m_pThread = AfxBeginThread(LastFMServices::WorkingThreadST, this, THREAD_PRIORITY_BELOW_NORMAL);

	}



}
コード例 #2
0
ファイル: TeenSpiritDlg.cpp プロジェクト: KurzedMetal/Jaangle
BOOL CTeenSpiritDlg::OnStateChanged(UINT stateMessage)
{
	if (stateMessage == SM_MediaChanged)
	{
		MediaPlayListItem mpli;
		PrgAPI* pAPI = PRGAPI();
		MediaPlayer* pMP = pAPI->GetMediaPlayer();
		INT nPos = pMP->GetPlayListPos();
		if (nPos != -1 && pMP->GetPlayListItem(mpli, nPos))
		{
			if (mpli.artist == NULL) mpli.artist = _T("");
			if (mpli.title == NULL) mpli.title = mpli.url;
			//=== Show Tray ToolTip
			//pAPI->GetTrayToolTipDlg()->OnMediaChanged(pAPI->GetOption(OPT_GEN_ShowToolTipOnMediaChanged));

			//====      NOTIFIERS
			TrackerTrack track;
			track.artist = mpli.artist;
			track.title = mpli.title;
			track.rating = mpli.rating;
			track.length = (UINT)pMP->GetMediaLength();
			pAPI->GetTracker()->SubmitTrack(ITracker::ACT_Started, track, GetCurrentUnixTimeStamp());
		}
		return TRUE;
	}

	//	case SM_MediaChanged:
	//		{
	//			MediaPlayer* pPlayer = pAPI->GetMediaPlayer();
	//			INT curMediaIdx = pPlayer->GetPlayListPos();
	//			if (curMediaIdx >= 0)
	//			{
	//				MediaPlayListItem mpli;
	//				if (pPlayer->GetPlayListItem(mpli, curMediaIdx))
	//				{
	//					//====      NOTIFIERS
	//					if (mpli.artist == NULL) mpli.artist = _T("");
	//					if (mpli.title == NULL) mpli.title = mpli.url;
	//					TrackerTrack track;
	//					track.artist = mpli.artist;
	//					track.title = mpli.title;
	//					track.rating = mpli.rating;
	//					track.length = (UINT)pPlayer->GetMediaLength();
	//					pAPI->GetTracker()->SubmitTrack(ITracker::ACT_Started, track, GetCurrentUnixTimeStamp());
	//					//====      Info Control
	//					if (pAPI->GetOption(OPT_VIEWER_Auto))// m_ViewerPane.GetAutoViewerMode())
	//					{
	//						TrackTypesEnum tt = GetTrackType(mpli.url);
	//						if (tt < TTYPE_FIRSTVIDEO)
	//						{
	//							m_ViewerPane.SetMode(CViewerPane::MOD_NormalInfo);
	//						}
	//						else if (tt < TTYPE_FIRSTVIRTUAL)
	//						{
	//							m_ViewerPane.SetMode(CViewerPane::MOD_Visualizations);
	//						}
	//						else
	//						{
	//							m_ViewerPane.SetMode(CViewerPane::MOD_Browser);
	//						}
	//					}
	//					if (m_ViewerPane.GetMode() == CViewerPane::MOD_NormalInfo && pAPI->GetOption(OPT_VIEWER_SyncWithPlayer))
	//					{
	//						MediaPlayListItem mpli;
	//						if (pPlayer->GetPlayListItem(mpli, curMediaIdx))
	//						{
	//							FullTrackRecordSP rec;
	//							if (pAPI->GetSQLManager()->GetFullTrackRecordByLocation(rec, mpli.url))
	//							{
	//								CInfoCtrl* pIC = m_ViewerPane.GetInfoControl();
	//								if (pIC != NULL)
	//								{
	//									pIC->SetActiveItem(rec);
	//									pIC->SetStyle(IT_Track);
	//									pIC->Refresh(100);
	//								}
	//							}
	//						}
	//					}
	//				}
	//	
	//			}
	//
	//		}
	//
	//		break;
	return FALSE;
}