X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FLibCecTray%2Fcontroller%2Fapplications%2FApplicationController.cs;h=b4c6120e81959a85c116f87149d358395d48ff8f;hb=b45bdacdeee5c96e0294717fbe2c47a49a110fd1;hp=ae9a226f26cfba18f7bc84b94ee68404d08ff710;hpb=16f47961800432dbdd5b3ead717908f383d26d6b;p=deb_libcec.git diff --git a/src/LibCecTray/controller/applications/ApplicationController.cs b/src/LibCecTray/controller/applications/ApplicationController.cs index ae9a226..b4c6120 100644 --- a/src/LibCecTray/controller/applications/ApplicationController.cs +++ b/src/LibCecTray/controller/applications/ApplicationController.cs @@ -49,9 +49,9 @@ namespace LibCECTray.controller.applications /// class ApplicationController { - public ApplicationController(CECSettings settings, string uiName, string processName, string filename, string workingDirectory) + public ApplicationController(CECController controller, string uiName, string processName, string filename, string workingDirectory) { - Settings = settings; + Controller = controller; UiName = uiName; ProcessName = processName; ApplicationFilename = filename; @@ -60,13 +60,13 @@ namespace LibCECTray.controller.applications IsInternal = false; } - public static ApplicationController FromString(CECSettings settings, string serialisedConfig) + public static ApplicationController FromString(CECController controller, CECSettings settings, string serialisedConfig) { var splitString = serialisedConfig.Split(';'); if (splitString.Length != 4) throw new InvalidDataException("incorrect number of parameters"); - return new ApplicationController(settings, splitString[0], splitString[1], splitString[2], splitString[3]); + return new ApplicationController(controller, splitString[0], splitString[1], splitString[2], splitString[3]); } public string AsString() @@ -273,7 +273,12 @@ namespace LibCECTray.controller.applications protected virtual IntPtr FindInstance() { var processes = Process.GetProcessesByName(ProcessName); - return processes.Length > 0 ? processes[0].MainWindowHandle : IntPtr.Zero; + foreach (var process in processes) + { + if (process.MainWindowHandle != IntPtr.Zero) + return process.MainWindowHandle; + } + return IntPtr.Zero; } #endregion @@ -383,7 +388,10 @@ namespace LibCECTray.controller.applications get { return _buttonConfig ?? (_buttonConfig = new CecButtonConfig(this)); } } - public CECSettings Settings; + public CECSettings Settings + { + get { return Controller.Settings; } + } protected DataGridView CecButtonGridView; public virtual ApplicationAction DefaultValue(CecKeypress key) @@ -407,6 +415,8 @@ namespace LibCECTray.controller.applications private bool _applicationRunning; + protected readonly CECController Controller; + #endregion } }