Пример #1
0
        public int AssignPlugin(
            string pluginId,
            string layoutId,
            OptimusMiniSettingsList settings)
        {
            OptimusMiniPluginBase lPlugin = _Browser.GetPluginById(pluginId);

            PluginInstance lInstance = new PluginInstance();

            lInstance._Plugin = lPlugin;
            lInstance._Worker = lPlugin.CreateWorker();

            lock (_PluginInstances)
            {
                lock (_DefaultLayout)
                {
                    _PluginInstances.Add(lInstance);
                    _DefaultLayout._PluginInstances.Add(lInstance);
                }
            }

            lInstance._Worker.Initialize(settings);
            lInstance._Worker.Repaint();

            return(0);
        }
Пример #2
0
        /// <summary>
        /// Assigns passed plugin to specified key.
        /// </summary>
        /// <param name="index">0-based index of key.</param>
        /// <param name="plugin">Plugin to assign.</param>
        /// <returns>0 if successful, otherwise an error code.</returns>
        public int AddPlugin(byte index, OptimusMiniPluginWorkerBase plugin, OptimusMiniSettingsList settings)
        {
            // ----- If there's already a plugin assigned remove it
            RemovePlugin(index);


            // ----- Add new plugin
            PluginInstance lInstance = new PluginInstance();

            lInstance._Worker       = plugin;
            _PluginInstances[index] = lInstance;
            plugin.Initialize(settings);
            plugin.Repaint();


            // ----- Result
            return(0);
        }
Пример #3
0
        public int UnassignPlugin(
            string pluginId,
            string layoutId,
            OptimusMiniSettingsList settings)
        {
            PluginInstance lInstance      = null;
            bool           lInstanceFound = false;

            lock (_PluginInstances)
            {
                lock (_DefaultLayout)
                {
                    for (int i = 0; i < _PluginInstances.Count; i++)
                    {
                        lInstance = _PluginInstances[i];
                        if (lInstance._Plugin.Id == pluginId)
                        {
                            _PluginInstances.RemoveAt(i);
                            lInstanceFound = true;
                            break;
                        }
                    }

                    for (int i = 0; i < _DefaultLayout._PluginInstances.Count; i++)
                    {
                        if (_DefaultLayout._PluginInstances[i]._Id == pluginId)
                        {
                            _DefaultLayout._PluginInstances.RemoveAt(i);
                            break;
                        }
                    }
                }
            }

            if (lInstanceFound)
            {
                //lInstance._Worker.Terminate();
            }

            return(0);
        }
        public int AssignPlugin(
            string pluginId,
            string layoutId,
            OptimusMiniSettingsList settings)
        {
            OptimusMiniPluginBase lPlugin = _Browser.GetPluginById(pluginId);

              PluginInstance lInstance = new PluginInstance();
              lInstance._Plugin = lPlugin;
              lInstance._Worker = lPlugin.CreateWorker();

              lock (_PluginInstances)
              {
            lock (_DefaultLayout)
            {
              _PluginInstances.Add(lInstance);
              _DefaultLayout._PluginInstances.Add(lInstance);
            }
              }

              lInstance._Worker.Initialize(settings);
              lInstance._Worker.Repaint();

              return 0;
        }
        /// <summary>
        /// Assigns passed plugin to specified key.
        /// </summary>
        /// <param name="index">0-based index of key.</param>
        /// <param name="plugin">Plugin to assign.</param>
        /// <returns>0 if successful, otherwise an error code.</returns>
        public int AddPlugin(byte index, OptimusMiniPluginWorkerBase plugin, OptimusMiniSettingsList settings)
        {
            // ----- If there's already a plugin assigned remove it
              RemovePlugin(index);

              // ----- Add new plugin
              PluginInstance lInstance = new PluginInstance();
              lInstance._Worker = plugin;
              _PluginInstances[index] = lInstance;
              plugin.Initialize(settings);
              plugin.Repaint();

              // ----- Result
              return 0;
        }
Пример #6
0
        private void UpdateSelectedAssignedPlugin(PluginInstance plugin)
        {
            if (plugin == null)
              {
            _SelectedAssignedPlugin = null;
              }
              else
              {
            _SelectedAssignedPlugin = plugin;
              }

              UpdateActions();
        }
Пример #7
0
        internal void Update()
        {
            if (_PluginInstances.Count == 0)
            {
                return;
            }

            int lCurrentTicks = Environment.TickCount;

            lock (_PluginInstances)
            {
                // Time to rotate?
                bool lRotated = false;
                if (lCurrentTicks - _LastRotate >= 30000)
                {
                    if (_PluginInstances.Count > 3)
                    {
                        PluginInstance lInstanceToMove = _PluginInstances[0];
                        _PluginInstances.RemoveAt(0);
                        _PluginInstances.Add(lInstanceToMove);
                    }
                    _LastRotate = lCurrentTicks;
                    lRotated    = true;
                }

                for (int i = 0; i < _PluginInstances.Count; i++)
                {
                    PluginInstance lInstance            = _PluginInstances[i];
                    OptimusMiniPluginWorkerBase lWorker = lInstance._Worker;

                    // Check for updated image
                    if (i <= 2 && lWorker._Bitmap != null && (lRotated || (lWorker._BitmapUpdated > lWorker._BitmapPainted)))
                    {
                        lWorker._BitmapPainted = Environment.TickCount;
                        Bitmap lBitmap = lWorker._Bitmap;
                        _Controller.ShowImage((byte)i, lBitmap);
                    }

                    // Check for events
                    List <OptimusMiniEventLog> lEvents = lWorker.GetEventLog();
                    if (lEvents != null)
                    {
                        foreach (OptimusMiniEventLog lEvent in lEvents)
                        {
                            _Controller.RaiseNotification(lEvent);
                        }
                    }

                    // Start update
                    if (lWorker.IsNextUpdateDue())
                    {
                        ThreadPool.QueueUserWorkItem(new WaitCallback(lWorker.Update));
                    }
                }

                //if (_PluginInstances.Count < 3)
                //{
                //  for (int i = _PluginInstances.Count - 1; i < 3; i++)
                //  {
                //    _Controller.ClearImage((byte)i);
                //  }
                //}
            }
        }