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.valado menudesktoppara 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.valapara 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.valapara 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 = 128com,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-runningdo 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_CONTROLSao 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);