Add support for list repeat mode
This commit is contained in:
parent
d3cf6159fc
commit
6858dc3b38
|
@ -377,6 +377,32 @@ static gboolean get_media_stream_status(MyMediaPlayer *player,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
// Operations when a media play end
|
||||
static void media_play_ended_handler(MyMediaPlayer *player)
|
||||
{
|
||||
GtkMediaStream *stream;
|
||||
|
||||
// Get Current Play mode
|
||||
PlayMode play_mode = my_media_player_get_play_mode(player);
|
||||
|
||||
switch (play_mode)
|
||||
{
|
||||
// Play a list of music once
|
||||
case PlayMode::List_Once:
|
||||
break;
|
||||
case PlayMode::List_Repeat:
|
||||
btnnext_clicked(NULL, player);
|
||||
stream = gtk_video_get_media_stream(GTK_VIDEO(
|
||||
my_media_player_get_video_widget(player)));
|
||||
gtk_media_stream_play(stream);
|
||||
break;
|
||||
case PlayMode::List_Shuffle:
|
||||
break;
|
||||
case PlayMode::One_Repeat:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Time monitor
|
||||
gboolean lyric_time_func(gpointer data)
|
||||
{
|
||||
|
@ -406,7 +432,7 @@ gboolean lyric_time_func(gpointer data)
|
|||
my_media_player_get_music_loaded(player))
|
||||
{
|
||||
my_media_player_set_music_loaded(player, FALSE);
|
||||
g_print("Media ended!\n");
|
||||
media_play_ended_handler(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -425,7 +425,7 @@ static void btnpriv_clicked(GtkButton *self, MyMediaPlayer *player)
|
|||
}
|
||||
|
||||
// Play next music
|
||||
static void btnnext_clicked(GtkButton *self, MyMediaPlayer *player)
|
||||
void btnnext_clicked(GtkButton *self, MyMediaPlayer *player)
|
||||
{
|
||||
// Clear stream for player
|
||||
GtkMediaStream *stream = gtk_video_get_media_stream(GTK_VIDEO(player->video));
|
||||
|
@ -621,6 +621,9 @@ static void my_media_player_init(MyMediaPlayer *self)
|
|||
// Check whether use dark icon name
|
||||
self->dark_mode = my_media_player_check_dark_theme(self);
|
||||
|
||||
// Default Play mode is List_Repeat mode
|
||||
self->current_play_mode = PlayMode::List_Repeat;
|
||||
|
||||
// Add widgets
|
||||
gtk_box_append(GTK_BOX(self->main_box), self->video);
|
||||
gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(self->scrolled_lyrics),
|
||||
|
|
|
@ -24,4 +24,6 @@ PlayMode my_media_player_get_play_mode(MyMediaPlayer *self);
|
|||
|
||||
char *my_media_player_get_filename(MyMediaPlayer *self);
|
||||
|
||||
void btnnext_clicked(GtkButton *self, MyMediaPlayer *player);
|
||||
|
||||
MyMediaPlayer *my_media_player_new(GtkApplication *app);
|
||||
|
|
Loading…
Reference in New Issue