Indicador de som, sem player ativo (somente lançadores, sem botões de controle)
Indicador de som, com o player ativo (botões de controle total)
15.10
Tenha os mesmos passos de construção como 14.04.
-
Remover jogador do menu depois de fechar
Modifique
src/service.vala
do menudesktop
para HIDE_INACTIVE_PLAYERS.this.menus.insert ("desktop", new SoundMenu ("indicator.desktop-settings", SoundMenu.DisplayFlags.SHOW_MUTE|SoundMenu.DisplayFlags.HIDE_INACTIVE_PLAYERS));
E modifique
src/sound-menu.vala
para a função add_player para remove_player_section, se ele não estiver em execução & amp; ocultar inativo está definido.public void add_player (MediaPlayer player) { if (this.notify_handlers.contains (player)) return; if (player.is_running || !this.hide_inactive) this.insert_player_section (player); else this.remove_player_section (player); this.update_playlists (player);
-
Ocultar os controles do player (Anterior / Reproduzir / Próximo) no menu depois de fechar, mantenha apenas o inicializador
O mesmo que 14.04, sem alteração.
14,04
-
Download de dependências e fontes de compilação
sudo apt-get build-dep indicator-sound apt-get source indicator-sound
-
Escolha o comportamento que você deseja:
-
Remover jogador do menu depois de fechar
Modifique
src/service.vala
para o menudesktop
.this.menus.insert ("desktop", new SoundMenu ("indicator.desktop-settings", SoundMenu.DisplayFlags.SHOW_MUTE | SoundMenu.DisplayFlags.HIDE_INACTIVE_PLAYERS));
Eu adicionei
| SoundMenu.DisplayFlags.HIDE_INACTIVE_PLAYERS
, você pode removerSoundMenu.DisplayFlags.SHOW_MUTE |
se quiser ocultar o controle de volume com players suaves. -
Ocultar os controles do player (Anterior / Reproduzir / Próximo) no menu depois de fechar, mantenha apenas o inicializador
Modifique
src/sound-menu.vala
-
Adicione um novo sinalizador
HIDE_INACTIVE_PLAYERS_CONTROLS = 128
com,
no final da linha anterior.public enum DisplayFlags { NONE = 0, SHOW_MUTE = 1, HIDE_INACTIVE_PLAYERS = 2, HIDE_PLAYERS = 4, HIDE_INACTIVE_PLAYERS_CONTROLS = 128 }
-
Adicione a variável
bool hide_inactive_controls;
para manter o status do sinalizadorbool hide_inactive; bool hide_inactive_controls; bool hide_players = false;
-
Adicione a linha
this.hide_inactive_controls =...
. para passar o parâmetro de sinalizador de construtor SoundMenu para sua variável.this.hide_inactive = (flags & DisplayFlags.HIDE_INACTIVE_PLAYERS) != 0; this.hide_inactive_controls = (flags & DisplayFlags.HIDE_INACTIVE_PLAYERS_CONTROLS) != 0; this.notify_handlers = new HashTable<MediaPlayer, ulong> (direct_hash, direct_equal);
-
Adicione
if (player.is_running || !this.hide_inactive_controls) {
e}
. para embrulhar instruções que criam (prev / play / next) no item de menu. Portanto, eles não são criados somente se o player estiver em execução ou o sinalizador de ocultar estiver inativo.if (player.is_running || !this.hide_inactive_controls) { var playback_item = new MenuItem (null, null); playback_item.set_attribute ("x-canonical-type", "s", "com.canonical.unity.playback-item"); playback_item.set_attribute ("x-canonical-play-action", "s", "indicator.play." + player.id); playback_item.set_attribute ("x-canonical-next-action", "s", "indicator.next." + player.id); playback_item.set_attribute ("x-canonical-previous-action", "s", "indicator.previous." + player.id); section.append_item (playback_item); }
-
Adicione
if (this.hide_inactive_controls) {
ao próximo}
. Para forçar a recriação da seção do menu do player quando o estadois-running
do player for alterado.var handler_id = player.notify["is-running"].connect ( () => { if (this.hide_inactive) { if (player.is_running) { this.insert_player_section (player); } else { this.remove_player_section (player); } } if (this.hide_inactive_controls) { this.remove_player_section (player); this.insert_player_section (player); } this.update_playlists (player); });
-
Por fim, modifique
src/service.vala
. Adicione nosso novo sinalizador criado| SoundMenu.DisplayFlags.HIDE_INACTIVE_PLAYERS_CONTROLS
ao menudesktop
.this.menus.insert ("desktop", new SoundMenu ("indicator.desktop-settings", SoundMenu.DisplayFlags.SHOW_MUTE | SoundMenu.DisplayFlags.HIDE_INACTIVE_PLAYERS_CONTROLS));
-
-
-
Compile e instale
cd indicator-sound-12.10.2+14.04.20140313/ mkdir build cd build/ cmake .. make sudo make install
Agora, os jogadores desaparecerão depois de fechá-los.
12,04
-
Download de dependências e fontes de compilação
sudo apt-get build-dep indicator-sound apt-get source indicator-sound
-
Modifique
src/player-controller.vala
, Substitua"rhythmbox.desktop"
por"xrhythmbox.desktop"
nas duas ocorrências. (apenas nome diferente) -
Compile e instale
cd indicator-sound-0.8.5.0/ ./configure make make install
Nota: Esse foi um truque rápido, a maneira correta pode ser:
-
Substituir
this.custom_items[widget_order.TRANSPORT].property_set_bool (MENUITEM_PROP_VISIBLE, this.app_info.get_id() == "rhythmbox.desktop");
com
this.custom_items[widget_order.TRANSPORT].property_set_bool (MENUITEM_PROP_VISIBLE, false);
-
e
if (this.app_info.get_id() == "rhythmbox.desktop"){ TransportMenuitem transport = this.custom_items[widget_order.TRANSPORT] as TransportMenuitem; transport.handle_cached_action(); } else{ this.custom_items[widget_order.TRANSPORT].property_set_bool (MENUITEM_PROP_VISIBLE, true); }
com
this.custom_items[widget_order.TRANSPORT].property_set_bool (MENUITEM_PROP_VISIBLE, true);