public void UpdWidgetsAll(LCDParser parser)
 {
     foreach(KeyValuePair<LCDScreen, HashSet<LCDWidget>> pair in screens)
     {
         LCDScreen screen=pair.Key;
         foreach(LCDWidget widget in pair.Value)
         {
             SendString("widget_set "+screen.name+" "+widget.name+" "+widget.GetSetString(parser)+"\n");
         }
     }
 }
        void IExtensionService.Initialize()
        {
            Hyena.Log.Debug ("Initializing LCD service");

            action_service = ServiceManager.Get<InterfaceActionService> ();
            actions = new ActionGroup ("LCD");
            actions.Add (new ActionEntry [] {
                new ActionEntry ("LCDAction", null,
                    AddinManager.CurrentLocalizer.GetString ("LCD"), null,
                    null, null),
                new ActionEntry ("LCDConfigureAction", Stock.Properties,
                    AddinManager.CurrentLocalizer.GetString ("_Configure..."), null,
                    AddinManager.CurrentLocalizer.GetString ("Configure the LCD plugin"), OnConfigure)
            });
            action_service.UIManager.InsertActionGroup (actions, 0);
            ui_manager_id = action_service.UIManager.AddUiFromResource ("LCDMenu.xml");

            ScreensCreate();

            lcdclient = new LCDClient(Host, Port);
            lcdclient.Connected += OnConnected;
            parser = new LCDParser();
            ServiceManager.PlayerEngine.ConnectEvent (OnPlayerEvent,
                PlayerEvent.Iterate |
                PlayerEvent.StartOfStream |
                PlayerEvent.EndOfStream |
                PlayerEvent.TrackInfoUpdated |
                PlayerEvent.StateChange);
        }
        public void UpdWidget(LCDScreen screen, LCDWidget widget, LCDParser parser)
        {
            if (!screens.ContainsKey(screen))
            {
                Hyena.Log.Warning("Screen "+screen.name+" not registered");
                return;
            }

            if (!screens[screen].Contains(widget))
            {
                Hyena.Log.Warning("Widget "+widget.name+" not registered in screen "+screen.name);
                return;
            }

            SendString("widget_set "+screen.name+" "+widget.name+" "+widget.GetSetString(parser)+"\n");
        }