@@ -399,6 +399,7 @@ cinnamon_proxy_complete (GObject *source,
399399static void
400400show_osd (CsdMediaKeysManager * manager ,
401401 const char * icon ,
402+ const char * label ,
402403 int level ,
403404 int outx ,
404405 int outy )
@@ -416,6 +417,9 @@ show_osd (CsdMediaKeysManager *manager,
416417 if (icon )
417418 g_variant_builder_add (& builder , "{sv}" ,
418419 "icon" , g_variant_new_string (icon ));
420+ if (label )
421+ g_variant_builder_add (& builder , "{sv}" ,
422+ "label" , g_variant_new_string (label ));
419423 if (level >= 0 )
420424 g_variant_builder_add (& builder , "{sv}" ,
421425 "level" , g_variant_new_int32 (level ));
@@ -642,7 +646,7 @@ do_eject_action (CsdMediaKeysManager *manager)
642646 }
643647
644648 /* Show the dialogue */
645- show_osd (manager , "media-eject-symbolic" , -1 , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
649+ show_osd (manager , "media-eject-symbolic" , NULL , -1 , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
646650
647651 /* Clean up the drive selection and exit if no suitable
648652 * drives are found */
@@ -696,7 +700,7 @@ do_touchpad_osd_action (CsdMediaKeysManager *manager, gboolean state)
696700{
697701 show_osd (manager ,
698702 state ? "input-touchpad-symbolic" : "touchpad-disabled-symbolic" ,
699- -1 , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
703+ NULL , -1 , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
700704}
701705
702706static void
@@ -732,11 +736,23 @@ show_sound_osd (CsdMediaKeysManager *manager,
732736 gboolean sound_changed ,
733737 gboolean quiet )
734738{
739+ GvcMixerUIDevice * device ;
740+ const GvcMixerStreamPort * port ;
735741 const char * icon ;
736742
737743 icon = get_icon_name_for_volume (muted , vol , is_mic );
738-
739- show_osd (manager , icon , vol , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
744+ port = gvc_mixer_stream_get_port (stream );
745+ if (g_strcmp0 (gvc_mixer_stream_get_form_factor (stream ), "internal" ) != 0 ||
746+ (port != NULL &&
747+ g_strcmp0 (port -> port , "analog-output-speaker" ) != 0 &&
748+ g_strcmp0 (port -> port , "analog-output" ) != 0 )) {
749+ device = gvc_mixer_control_lookup_device_from_stream (manager -> priv -> volume , stream );
750+ show_osd (manager , icon ,
751+ gvc_mixer_ui_device_get_description (device ),
752+ vol , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
753+ } else {
754+ show_osd (manager , icon , NULL , vol , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
755+ }
740756
741757 if (quiet == FALSE && sound_changed != FALSE && muted == FALSE) {
742758 gboolean enabled = g_settings_get_boolean (manager -> priv -> sound_settings , "volume-sound-enabled" );
@@ -1233,7 +1249,7 @@ csd_media_player_key_pressed (CsdMediaKeysManager *manager,
12331249 if (!have_listeners ) {
12341250 if (!mpris_controller_key (manager -> priv -> mpris_controller , key )) {
12351251 /* Popup a dialog with an (/) icon */
1236- show_osd (manager , "action-unavailable-symbolic" , -1 , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
1252+ show_osd (manager , "action-unavailable-symbolic" , NULL , -1 , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
12371253 }
12381254 return TRUE;
12391255 }
@@ -1327,7 +1343,7 @@ do_video_rotate_lock_action (CsdMediaKeysManager *manager,
13271343 g_object_unref (settings );
13281344
13291345 show_osd (manager , locked ? "rotation-locked-symbolic"
1330- : "rotation-allowed-symbolic" , -1 , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
1346+ : "rotation-allowed-symbolic" , NULL , -1 , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
13311347}
13321348
13331349static void
@@ -1488,7 +1504,7 @@ update_screen_cb (GObject *source_object,
14881504
14891505 /* update the dialog with the new value */
14901506 g_variant_get (variant , "(uii)" , & percentage , & outx , & outy );
1491- show_osd (manager , "display-brightness-symbolic" , percentage , outx , outy );
1507+ show_osd (manager , "display-brightness-symbolic" , NULL , percentage , outx , outy );
14921508 g_variant_unref (variant );
14931509}
14941510
@@ -1570,7 +1586,7 @@ update_keyboard_cb (GObject *source_object,
15701586
15711587 /* update the dialog with the new value */
15721588 g_variant_get (new_percentage , "(u)" , & percentage );
1573- show_osd (manager , "keyboard-brightness-symbolic" , percentage , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
1589+ show_osd (manager , "keyboard-brightness-symbolic" , NULL , percentage , OSD_ALL_OUTPUTS_X , OSD_ALL_OUTPUTS_Y );
15741590 g_variant_unref (new_percentage );
15751591}
15761592
0 commit comments