@@ -480,6 +480,28 @@ toggle_and_get_active_menu_item(const gchar *glade_id)
480
480
481
481
// Shuffle mode
482
482
483
+ static void
484
+ action_shuffle_mode_init (GSimpleAction * action )
485
+ {
486
+ ddb_shuffle_t shuffle = deadbeef -> streamer_get_shuffle ();
487
+ switch (shuffle )
488
+ {
489
+ case DDB_SHUFFLE_OFF :
490
+ g_simple_action_set_state (action , g_variant_new_string ("off" ));
491
+ break ;
492
+ case DDB_SHUFFLE_TRACKS :
493
+ g_simple_action_set_state (action , g_variant_new_string ("tracks" ));
494
+ break ;
495
+ case DDB_SHUFFLE_RANDOM :
496
+ g_simple_action_set_state (action , g_variant_new_string ("random" ));
497
+ break ;
498
+ case DDB_SHUFFLE_ALBUMS :
499
+ g_simple_action_set_state (action , g_variant_new_string ("albums" ));
500
+ break ;
501
+ }
502
+
503
+ }
504
+
483
505
static void
484
506
action_shuffle_mode_activate (GSimpleAction * action , GVariant * parameter , gpointer user_data )
485
507
{
@@ -530,6 +552,25 @@ order_random_activate(GtkMenuItem *menuitem, gpointer user_data)
530
552
531
553
// Repeat mode
532
554
555
+ static void
556
+ action_repeat_mode_init (GSimpleAction * action )
557
+ {
558
+ ddb_repeat_t repeat = deadbeef -> streamer_get_repeat ();
559
+ switch (repeat )
560
+ {
561
+ case DDB_REPEAT_OFF :
562
+ g_simple_action_set_state (action , g_variant_new_string ("off" ));
563
+ break ;
564
+ case DDB_REPEAT_SINGLE :
565
+ g_simple_action_set_state (action , g_variant_new_string ("single" ));
566
+ break ;
567
+ case DDB_REPEAT_ALL :
568
+ g_simple_action_set_state (action , g_variant_new_string ("all" ));
569
+ break ;
570
+ }
571
+
572
+ }
573
+
533
574
static void
534
575
action_repeat_mode_activate (GSimpleAction * action , GVariant * parameter , gpointer user_data )
535
576
{
@@ -845,12 +886,12 @@ get_display_action_title (const char *title) {
845
886
}
846
887
847
888
#ifndef strdupa
848
- # define strdupa (s ) \
849
- ({ \
850
- const char *old = (s); \
851
- size_t len = strlen (old) + 1; \
852
- char *newstr = (char *) alloca (len); \
853
- (char *) memcpy (newstr, old, len); \
889
+ # define strdupa (s ) \
890
+ ({ \
891
+ const char *old = (s); \
892
+ size_t len = strlen (old) + 1; \
893
+ char *newstr = (char *) alloca (len); \
894
+ (char *) memcpy (newstr, old, len); \
854
895
})
855
896
#endif
856
897
@@ -1142,10 +1183,12 @@ void window_init_hook (void *userdata) {
1142
1183
hookup_action_to_radio_menu_item (G_ACTION_MAP (group ), "shufflemode" , G_CALLBACK (order_shuffle_activate ), "order_shuffle" );
1143
1184
hookup_action_to_radio_menu_item (G_ACTION_MAP (group ), "shufflemode" , G_CALLBACK (order_shuffle_albums_activate ), "order_shuffle_albums" );
1144
1185
hookup_action_to_radio_menu_item (G_ACTION_MAP (group ), "shufflemode" , G_CALLBACK (order_random_activate ), "order_random" );
1186
+ action_shuffle_mode_init (g_action_map_lookup_action (G_ACTION_MAP (group ), "shufflemode" ));
1145
1187
1146
1188
hookup_action_to_radio_menu_item (G_ACTION_MAP (group ), "repeatmode" , G_CALLBACK (loop_disable_activate ), "loop_disable" );
1147
1189
hookup_action_to_radio_menu_item (G_ACTION_MAP (group ), "repeatmode" , G_CALLBACK (loop_single_activate ), "loop_single" );
1148
1190
hookup_action_to_radio_menu_item (G_ACTION_MAP (group ), "repeatmode" , G_CALLBACK (loop_all_albums_activate ), "loop_all" );
1191
+ action_repeat_mode_init (g_action_map_lookup_action (G_ACTION_MAP (group ), "repeatmode" ));
1149
1192
1150
1193
1151
1194
g_object_set (G_OBJECT (headerbar ), "spacing" , headerbarui_flags .button_spacing , NULL );
0 commit comments