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); }
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; }
private void UpdateSelectedAssignedPlugin(PluginInstance plugin) { if (plugin == null) { _SelectedAssignedPlugin = null; } else { _SelectedAssignedPlugin = plugin; } UpdateActions(); }
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); // } //} } }