void MediaPlayer2Player::stateUpdated() const { QVariantMap properties; properties["PlaybackStatus"] = PlaybackStatus(); properties["CanPause"] = CanPause(); Mpris2::signalPropertiesChange(this, properties); }
void Mpris::updateStatus() { QVariantMap map; if (MPDStatus::self()->repeat()!=status.repeat) { map.insert("LoopStatus", LoopStatus()); } if (MPDStatus::self()->random()!=status.random) { map.insert("Shuffle", Shuffle()); } if (MPDStatus::self()->volume()!=status.volume) { map.insert("Volume", Volume()); } if (MPDStatus::self()->playlistLength()!=status.playlistLength) { map.insert("CanGoNext", CanGoNext()); map.insert("CanGoPrevious", CanGoPrevious()); } if (MPDStatus::self()->state()!=status.state) { map.insert("PlaybackStatus", PlaybackStatus()); map.insert("CanPlay", CanPlay()); map.insert("CanPause", CanPause()); map.insert("CanSeek", CanSeek()); } if (MPDStatus::self()->timeElapsed()!=status.timeElapsed) { map.insert("Position", convertTime(MPDStatus::self()->timeElapsed())); } if (!map.isEmpty() || MPDStatus::self()->songId()!=status.songId) { if (!map.contains("Position")) { map.insert("Position", convertTime(MPDStatus::self()->timeElapsed())); } map.insert("Metadata", Metadata()); signalUpdate(map); } status=MPDStatus::self()->getValues(); }
/*! * Enables the buttons that are valid based on the current selection in the * list control. For example, if only done jobs are selected, it would leave * the "Pause" button greyed out, since pausing makes no sense for done jobs. */ void GamessQFrame::RefreshButtons() { int *status = GetSelectedStatus(); // everything should be grey if we can't connect mConnected = mQueueManager.IsConnected(); // you can always add, refresh and clear jobsToolbar->EnableTool(wxID_ADD, mConnected); jobsMenu->Enable(wxID_ADD, mConnected); jobsToolbar->EnableTool(ID_REFRESH, mConnected); jobsMenu->Enable(ID_REFRESH, mConnected); jobsToolbar->EnableTool(wxID_CLEAR, mConnected); jobsMenu->Enable(wxID_CLEAR, mConnected); jobsToolbar->EnableTool(wxID_REMOVE, mConnected && CanRemove()); jobsMenu->Enable(wxID_REMOVE, mConnected && CanRemove()); jobsToolbar->EnableTool(ID_PAUSE, mConnected && mActive && CanPause(status)); jobsMenu->Enable(ID_PAUSE, mConnected && mActive && CanPause(status)); jobsToolbar->EnableTool(ID_RESUME, mConnected && mActive && CanResume(status)); jobsMenu->Enable(ID_RESUME, mConnected && mActive && CanResume(status)); jobsToolbar->EnableTool(wxID_CANCEL, mConnected && mActive && CanCancel(status)); jobsMenu->Enable(wxID_CANCEL, mConnected && mActive && CanCancel(status)); jobsMenu->Enable(ID_VIEWLOGS, mConnected && CanViewLogs(status)); jobsMenu->Enable(ID_SAVEFOLDER, mConnected && CanSaveFolder(status)); jobsMenu->Enable(ID_SAVEAS, mConnected && CanSaveAs(status)); jobsMenu->Enable(ID_MACMOLPLT, mConnected && CanSaveFolder(status)); delete status; }
/*! * This function is called when the user clicks "Pause". It looks through the * selected items and tells the server to pause whichever ones can be paused. * * \sa CanPause(job *) */ void GamessQFrame::OnPauseClick( wxCommandEvent& event ) { GreyButtons(); int index = jobListCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); int status; while (index != -1) { Job *job = mJobList.Item(index)->GetData(); if (CanPause(job)) { mQueueManager.Pause(job->GetId()); } index = jobListCtrl->GetNextItem(index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); } RefreshList(); RefreshButtons(); }