CCIMXDesktop
Loading...
Searching...
No Matches
CCMediaPlayList.h
1
#ifndef CCMEDIAPLAYLIST_H
2
#define CCMEDIAPLAYLIST_H
3
4
#include <QObject>
5
10
struct
MediaListMails
{
11
bool
prev_enabled
{
false
};
12
bool
next_enabled
{
false
};
13
QString
current_playing
{};
14
};
15
19
class
CCMediaPlayList
:
public
QObject {
20
Q_OBJECT
21
public
:
27
explicit
CCMediaPlayList
(QObject* parent =
nullptr
);
28
32
enum class
PlayMode
{
33
OneShot
,
34
OneCycle
,
35
ListPlay
,
36
ListCycle
37
};
38
39
static
constexpr
const
PlayMode
DEF_MODE
=
PlayMode::ListCycle
;
40
45
void
set_play_mode
(
const
PlayMode
mode);
46
50
void
flow_mode
();
51
56
inline
PlayMode
get_play_mode
()
const
{
return
current_mode; }
57
62
MediaListMails
fetch_prev_play
();
63
68
MediaListMails
fetch_next_play
();
69
74
MediaListMails
fetch_current_play
() {
75
return
fetch_from_name
(actual_play_list.at(moving_index));
76
}
77
83
MediaListMails
fetch_from_name
(
const
QString& where);
84
89
MediaListMails
fetch_first_play
();
90
95
MediaListMails
fetch_last_play
();
96
102
QStringList
currentPlayingList
()
const
{
return
actual_play_list; }
103
108
QStringList
actualList
()
const
{
return
play_list; }
109
114
int
get_actualListlist_size
() {
return
play_list.size(); }
115
120
void
enqueue_play
(
const
QStringList& media_sources);
121
126
void
remove_play_list
(
const
QStringList& media_sources);
127
128
signals:
133
void
playModeChanged
(
const
PlayMode
mode);
134
135
public
slots:
139
void
flush_play_list
();
140
141
private
:
142
PlayMode
current_mode {
DEF_MODE
};
143
QStringList play_list {};
144
QStringList actual_play_list {};
145
int
moving_index { -1 };
146
147
enum
Direction {
148
FORWARD,
149
BACKWARD
150
};
151
156
void
flush_info_according_mode(Direction dir);
157
162
MediaListMails
flush_according_index();
163
};
164
165
#endif
// CCMEDIAPLAYLIST_H
CCMediaPlayList
The CCMediaPlayList class manages a playlist with various play modes.
Definition
CCMediaPlayList.h:19
CCMediaPlayList::DEF_MODE
static constexpr const PlayMode DEF_MODE
Default play mode.
Definition
CCMediaPlayList.h:39
CCMediaPlayList::PlayMode
PlayMode
PlayMode enum defines playback modes.
Definition
CCMediaPlayList.h:32
CCMediaPlayList::PlayMode::ListCycle
@ ListCycle
Play the playlist repeatedly.
CCMediaPlayList::PlayMode::OneCycle
@ OneCycle
Repeat the current media endlessly.
CCMediaPlayList::PlayMode::OneShot
@ OneShot
Play one media once then stop.
CCMediaPlayList::PlayMode::ListPlay
@ ListPlay
Play the playlist once in order.
CCMediaPlayList::fetch_last_play
MediaListMails fetch_last_play()
Fetch last media info in the actual playlist.
Definition
CCMediaPlayList.cpp:84
CCMediaPlayList::enqueue_play
void enqueue_play(const QStringList &media_sources)
Append media sources to the play list.
Definition
CCMediaPlayList.cpp:95
CCMediaPlayList::actualList
QStringList actualList() const
Get the editable play list.
Definition
CCMediaPlayList.h:108
CCMediaPlayList::remove_play_list
void remove_play_list(const QStringList &media_sources)
Remove media sources from the play list.
Definition
CCMediaPlayList.cpp:101
CCMediaPlayList::fetch_prev_play
MediaListMails fetch_prev_play()
Fetch previous media info according to play mode.
Definition
CCMediaPlayList.cpp:30
CCMediaPlayList::fetch_next_play
MediaListMails fetch_next_play()
Fetch next media info according to play mode.
Definition
CCMediaPlayList.cpp:42
CCMediaPlayList::flush_play_list
void flush_play_list()
Flush the editable play list into actual_play_list, making changes effective.
Definition
CCMediaPlayList.cpp:108
CCMediaPlayList::fetch_current_play
MediaListMails fetch_current_play()
Fetch current media info.
Definition
CCMediaPlayList.h:74
CCMediaPlayList::currentPlayingList
QStringList currentPlayingList() const
Get the current actual playing list.
Definition
CCMediaPlayList.h:102
CCMediaPlayList::get_actualListlist_size
int get_actualListlist_size()
Get size of the editable play list.
Definition
CCMediaPlayList.h:114
CCMediaPlayList::flow_mode
void flow_mode()
Cycle the play mode to the next one.
Definition
CCMediaPlayList.cpp:12
CCMediaPlayList::fetch_first_play
MediaListMails fetch_first_play()
Fetch first media info in the actual playlist.
Definition
CCMediaPlayList.cpp:73
CCMediaPlayList::get_play_mode
PlayMode get_play_mode() const
Get current play mode.
Definition
CCMediaPlayList.h:56
CCMediaPlayList::fetch_from_name
MediaListMails fetch_from_name(const QString &where)
Fetch media info by name.
Definition
CCMediaPlayList.cpp:54
CCMediaPlayList::set_play_mode
void set_play_mode(const PlayMode mode)
Set the play mode.
Definition
CCMediaPlayList.cpp:7
CCMediaPlayList::playModeChanged
void playModeChanged(const PlayMode mode)
Signal emitted when play mode changes.
MediaListMails
The MediaListMails struct provides play status info.
Definition
CCMediaPlayList.h:10
MediaListMails::next_enabled
bool next_enabled
Whether next item can be played.
Definition
CCMediaPlayList.h:12
MediaListMails::prev_enabled
bool prev_enabled
Whether previous item can be played.
Definition
CCMediaPlayList.h:11
MediaListMails::current_playing
QString current_playing
The current playing media name or path.
Definition
CCMediaPlayList.h:13
extern_app
MediaPlayer
core
CCMediaPlayList.h
Generated by
1.9.8