File indexing completed on 2024-04-21 04:48:59
0001 /* 0002 SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #include "managemediaplayercontrol.h" 0008 0009 0010 ManageMediaPlayerControl::ManageMediaPlayerControl(QObject *parent) : QObject(parent) 0011 { 0012 0013 } 0014 0015 bool ManageMediaPlayerControl::playControlEnabled() const 0016 { 0017 return mCurrentTrack.isValid(); 0018 } 0019 0020 bool ManageMediaPlayerControl::skipBackwardControlEnabled() const 0021 { 0022 return (mPreviousTrack.isValid()); 0023 } 0024 0025 bool ManageMediaPlayerControl::skipForwardControlEnabled() const 0026 { 0027 return (mNextTrack.isValid()); 0028 } 0029 0030 bool ManageMediaPlayerControl::musicPlaying() const 0031 { 0032 return mIsInPlayingState; 0033 } 0034 0035 void ManageMediaPlayerControl::playerPausedOrStopped() 0036 { 0037 if (mIsInPlayingState) { 0038 auto oldPreviousTrackIsEnabled = skipBackwardControlEnabled(); 0039 auto oldNextTrackIsEnabled = skipForwardControlEnabled(); 0040 0041 mIsInPlayingState = false; 0042 Q_EMIT musicPlayingChanged(); 0043 0044 if (!mCurrentTrack.isValid()) { 0045 return; 0046 } 0047 0048 if (oldNextTrackIsEnabled != skipForwardControlEnabled()) { 0049 Q_EMIT skipForwardControlEnabledChanged(); 0050 } 0051 0052 if (oldPreviousTrackIsEnabled != skipBackwardControlEnabled()) { 0053 Q_EMIT skipBackwardControlEnabledChanged(); 0054 } 0055 } 0056 } 0057 0058 void ManageMediaPlayerControl::playerPlaying() 0059 { 0060 if (!mIsInPlayingState) { 0061 auto oldPreviousTrackIsEnabled = skipBackwardControlEnabled(); 0062 auto oldNextTrackIsEnabled = skipForwardControlEnabled(); 0063 0064 mIsInPlayingState = true; 0065 Q_EMIT musicPlayingChanged(); 0066 0067 if (!mCurrentTrack.isValid()) { 0068 return; 0069 } 0070 0071 if (oldNextTrackIsEnabled != skipForwardControlEnabled()) { 0072 Q_EMIT skipForwardControlEnabledChanged(); 0073 } 0074 0075 if (oldPreviousTrackIsEnabled != skipBackwardControlEnabled()) { 0076 Q_EMIT skipBackwardControlEnabledChanged(); 0077 } 0078 } 0079 } 0080 0081 void ManageMediaPlayerControl::setPreviousTrack(const QPersistentModelIndex &previousTrack) 0082 { 0083 if (mPreviousTrack == previousTrack) { 0084 return; 0085 } 0086 0087 bool oldValueSkipBackward = skipBackwardControlEnabled(); 0088 0089 mPreviousTrack = previousTrack; 0090 Q_EMIT previousTrackChanged(); 0091 0092 if (oldValueSkipBackward != skipBackwardControlEnabled()) { 0093 Q_EMIT skipBackwardControlEnabledChanged(); 0094 } 0095 } 0096 0097 void ManageMediaPlayerControl::setCurrentTrack(const QPersistentModelIndex ¤tTrack) 0098 { 0099 if (mCurrentTrack == currentTrack) { 0100 return; 0101 } 0102 0103 bool oldPlayControlEnabled = playControlEnabled(); 0104 0105 mCurrentTrack = currentTrack; 0106 Q_EMIT currentTrackChanged(); 0107 0108 if (oldPlayControlEnabled != playControlEnabled()) { 0109 Q_EMIT playControlEnabledChanged(); 0110 } 0111 } 0112 0113 void ManageMediaPlayerControl::setNextTrack(const QPersistentModelIndex &nextTrack) 0114 { 0115 if (mNextTrack == nextTrack) { 0116 return; 0117 } 0118 0119 bool oldValueSkipForward = skipForwardControlEnabled(); 0120 0121 mNextTrack = nextTrack; 0122 Q_EMIT nextTrackChanged(); 0123 0124 if (oldValueSkipForward != skipForwardControlEnabled()) { 0125 Q_EMIT skipForwardControlEnabledChanged(); 0126 } 0127 } 0128 0129 QPersistentModelIndex ManageMediaPlayerControl::previousTrack() const 0130 { 0131 return mPreviousTrack; 0132 } 0133 0134 QPersistentModelIndex ManageMediaPlayerControl::currentTrack() const 0135 { 0136 return mCurrentTrack; 0137 } 0138 0139 QPersistentModelIndex ManageMediaPlayerControl::nextTrack() const 0140 { 0141 return mNextTrack; 0142 } 0143 0144 #include "moc_managemediaplayercontrol.cpp"