Sayonara Player
PlayManagerImpl.h
1 /* PlayManagerImpl.h */
2 /*
3  * Copyright (C) 2011-2021 Michael Lugmair
4  *
5  * This file is part of sayonara player
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16 
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 #ifndef SAYONARA_PLAYER_PLAYMANAGERIMPL_H
21 #define SAYONARA_PLAYER_PLAYMANAGERIMPL_H
22 
23 #include "Interfaces/PlayManager.h"
24 #include "Utils/Pimpl.h"
25 #include "Utils/typedefs.h"
26 
28  public PlayManager
29 {
30  Q_OBJECT
31  PIMPL(PlayManagerImpl)
32 
33  public:
34  PlayManagerImpl(QObject* parent);
35  ~PlayManagerImpl() override;
36 
37  protected:
38  void play() override;
39  void wakeUp() override;
40  void playPause() override;
41  void pause() override;
42  void previous() override;
43  void next() override;
44  void stop() override;
45  void record(bool b) override;
46  void seekRelative(double percent) override;
47  void seekAbsoluteMs(MilliSeconds ms) override;
48  void seekRelativeMs(MilliSeconds ms) override;
49  void setCurrentPositionMs(MilliSeconds ms) override;
50  void changeCurrentTrack(const MetaData& track, int trackIdx) override;
51  void changeCurrentMetadata(const MetaData& md) override;
52  void setTrackReady() override;
53  void setTrackFinished() override;
54  void buffering(int progress) override;
55  void volumeUp() override;
56  void volumeDown() override;
57  void setVolume(int vol) override;
58  void setMute(bool b) override;
59  void toggleMute() override;
60  void changeDuration(MilliSeconds ms) override;
61  void changeBitrate(Bitrate br) override;
62  void error(const QString& message) override;
63 
64  PlayState playstate() const override;
65  MilliSeconds currentPositionMs() const override;
66  MilliSeconds currentTrackPlaytimeMs() const override;
67  MilliSeconds initialPositionMs() const override;
68  MilliSeconds durationMs() const override;
69  Bitrate bitrate() const override;
70  const MetaData& currentTrack() const override;
71  int volume() const override;
72  bool isMuted() const override;
73  void shutdown() override;
74 
75  private slots:
76  void trackMetadataChanged();
77  void tracksDeleted();
78 };
79 
80 #endif //SAYONARA_PLAYER_PLAYMANAGERIMPL_H
PlayManagerImpl::playPause
void playPause() override
toggle play/pause
PlayManagerImpl::seekAbsoluteMs
void seekAbsoluteMs(MilliSeconds ms) override
seek absolute
PlayManagerImpl::wakeUp
void wakeUp() override
Emit wake up signal after stopping state.
PlayManagerImpl::shutdown
void shutdown() override
Shutdown the computer.
PlayManagerImpl::stop
void stop() override
stop playback
PlayManagerImpl::volumeUp
void volumeUp() override
increase volume by 5
PlayManagerImpl::changeCurrentTrack
void changeCurrentTrack(const MetaData &track, int trackIdx) override
change current track
PlayManagerImpl::seekRelativeMs
void seekRelativeMs(MilliSeconds ms) override
seekRelativeMs
PlayManagerImpl::volume
int volume() const override
get current volume
PlayManagerImpl::record
void record(bool b) override
request recording (see also sig_record(bool b))
PlayManagerImpl::changeCurrentMetadata
void changeCurrentMetadata(const MetaData &md) override
change_track
PlayManagerImpl::setTrackReady
void setTrackReady() override
notify, that track is ready for playback
PlayManagerImpl::playstate
PlayState playstate() const override
get current play state
PlayManagerImpl::previous
void previous() override
change to previous track
PlayManagerImpl::setMute
void setMute(bool b) override
mute/unmute
PlayManager
Global handler for current playback state (Singleton)
Definition: PlayManager.h:36
PlayManagerImpl::setVolume
void setVolume(int vol) override
set volume
PlayManagerImpl::durationMs
MilliSeconds durationMs() const override
get duration of track
PlayManagerImpl::toggleMute
void toggleMute() override
If already muted, then unmute. If unmuted, then mute it.
PlayManagerImpl::initialPositionMs
MilliSeconds initialPositionMs() const override
get position in milliseconds where track will start
PlayManagerImpl::volumeDown
void volumeDown() override
decrease volume by 5
PlayManagerImpl
Definition: PlayManagerImpl.h:29
PlayManagerImpl::isMuted
bool isMuted() const override
query mute status
PlayManagerImpl::currentPositionMs
MilliSeconds currentPositionMs() const override
get current position in milliseconds
PlayManagerImpl::error
void error(const QString &message) override
Some playback error occured.
PlayManagerImpl::seekRelative
void seekRelative(double percent) override
seek relative
MetaData
The MetaData class.
Definition: MetaData.h:47
PlayManagerImpl::setCurrentPositionMs
void setCurrentPositionMs(MilliSeconds ms) override
set current position of track This method does not seek. Just tells the playmanager where the current...
PlayManagerImpl::currentTrack
const MetaData & currentTrack() const override
get current track
PlayManagerImpl::next
void next() override
change to next track
PlayManagerImpl::changeDuration
void changeDuration(MilliSeconds ms) override
Change the duration. This is usually called when the Engine sends a duration changed signal....
PlayManagerImpl::pause
void pause() override
pause track, if currently playing
PlayManagerImpl::buffering
void buffering(int progress) override
notifiy, that track is in buffering state currently
PlayManagerImpl::play
void play() override
Start playing if there's a track.