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); } }
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; }