/// <summary>
        /// searchForNew is used when panel has been detached => attached but not found again because there is no hook (new HID instance ID).
        /// So already found panels should be left as is.
        /// </summary>
        /// <param name="loadStreamDeck"></param>
        /// <param name="searchForNew"></param>
        public void Startup(bool loadStreamDeck)
        {
            try
            {
                foreach (var gamingPanelSkeleton in Common.GamingPanelSkeletons)
                {
                    foreach (var hidDevice in HidDevices.Enumerate(gamingPanelSkeleton.VendorId, gamingPanelSkeleton.ProductId))
                    {
                        if (hidDevice != null)
                        {
                            if (!loadStreamDeck && gamingPanelSkeleton.VendorId == (int)GamingPanelVendorEnum.Elgato)
                            {
                                continue;
                            }

                            var hidIinstance = hidDevice.DevicePath;
                            if (!HIDDeviceAlreadyExists(hidIinstance))
                            {
                                var hidSkeleton = new HIDSkeleton(gamingPanelSkeleton, hidIinstance);
                                HIDSkeletons.Add(hidSkeleton);

                                hidDevice.MonitorDeviceEvents = true;
                                hidDevice.Inserted           += hidSkeleton.HIDDeviceOnInserted;
                                hidDevice.Removed            += hidSkeleton.HIDDeviceOnRemoved;

                                //Only Saitek needs this hid library, Stream Deck uses an other. But Stream Deck is added in order to have references.
                                if (hidSkeleton.PanelInfo.VendorId == (int)GamingPanelVendorEnum.Saitek || hidSkeleton.PanelInfo.VendorId == (int)GamingPanelVendorEnum.MadCatz)
                                {
                                    hidSkeleton.HIDReadDevice = hidDevice;
                                    hidSkeleton.HIDReadDevice.OpenDevice(DeviceMode.NonOverlapped, DeviceMode.NonOverlapped, ShareMode.ShareRead | ShareMode.ShareWrite);
                                    hidSkeleton.HIDReadDevice.MonitorDeviceEvents = true;

                                    hidSkeleton.HIDWriteDevice = hidDevice;
                                    hidSkeleton.HIDWriteDevice.OpenDevice(DeviceMode.NonOverlapped, DeviceMode.NonOverlapped, ShareMode.ShareRead | ShareMode.ShareWrite);
                                    hidSkeleton.HIDWriteDevice.MonitorDeviceEvents = true;
                                }
                            }
                        }
                    }
                }

                /*foreach (var hidSkeleton in HIDSkeletons)
                 * {
                 *  if (hidSkeleton.IsAttached)
                 *  {
                 *      Debug.WriteLine(hidSkeleton.GamingPanelType + "   " + hidSkeleton.HIDInstance);
                 *  }
                 * }*/
                Debug.WriteLine("*** HIDSkeleton count is " + HIDSkeletons.Count);
                //Broadcast that this panel was found.
                HIDSkeletons.FindAll(o => o.IsAttached).ToList().ForEach(o => AppEventHandler.PanelEvent(this, o.HIDInstance, o, PanelEventType.Found));

                //Broadcast that panel search is over and all panels have been found that exists.
                AppEventHandler.PanelEvent(this, null, null, PanelEventType.AllPanelsFound);
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }
        }
Esempio n. 2
0
        public override void ImportSettings(GenericPanelBinding genericPanelBinding)
        {
            ClearSettings();

            BindingHash = genericPanelBinding.BindingHash;

            var settings = genericPanelBinding.Settings;

            foreach (var setting in settings)
            {
                if (!setting.StartsWith("#") && setting.Length > 2)
                {
                    if (setting.StartsWith(DCSBIOSBrightnessBinding.Keyword))
                    {
                        _dcsBiosBrightnessBinding = new DCSBIOSBrightnessBinding();
                        _dcsBiosBrightnessBinding.ImportSettings(setting);
                        HandleBrightnessBinding();
                    }
                    else
                    {
                        var colorOutput = new DcsOutputAndColorBindingBIP();
                        colorOutput.ImportSettings(setting);
                        _listColorOutputBinding.Add(colorOutput);
                    }
                }
            }

            AppEventHandler.SettingsApplied(this, HIDSkeletonBase.HIDInstance, TypeOfPanel);
        }
Esempio n. 3
0
        public BackLitPanelUserControl(TabItem parentTabItem, HIDSkeleton hidSkeleton)
        {
            InitializeComponent();
            ParentTabItem    = parentTabItem;
            _backlitPanelBIP = new BacklitPanelBIP(Settings.Default.BIPLedStrength, hidSkeleton);

            AppEventHandler.AttachGamingPanelListener(this);
            AppEventHandler.AttachLEDLightListener(this);
        }
Esempio n. 4
0
        public TPMPanelUserControl(HIDSkeleton hidSkeleton, TabItem parentTabItem)
        {
            InitializeComponent();
            ParentTabItem = parentTabItem;

            _tpmPanel = new TPMPanel(hidSkeleton);

            AppEventHandler.AttachGamingPanelListener(this);
        }
        public MultiPanelUserControl(HIDSkeleton hidSkeleton, TabItem parentTabItem)
        {
            InitializeComponent();
            ParentTabItem = parentTabItem;

            _multiPanelPZ70 = new MultiPanelPZ70(hidSkeleton);
            AppEventHandler.AttachGamingPanelListener(this);

            HideAllImages();
        }
        public SwitchPanelPZ55UserControl(HIDSkeleton hidSkeleton, TabItem parentTabItem)
        {
            InitializeComponent();

            ParentTabItem    = parentTabItem;
            _switchPanelPZ55 = new SwitchPanelPZ55(hidSkeleton);

            AppEventHandler.AttachGamingPanelListener(this);
            AppEventHandler.AttachLEDLightListener(this);
        }
        public FarmingPanelUserControl(HIDSkeleton hidSkeleton, TabItem parentTabItem)
        {
            InitializeComponent();

            ParentTabItem     = parentTabItem;
            _farmingSidePanel = new FarmingSidePanel(hidSkeleton);

            AppEventHandler.AttachGamingPanelListener(this);
            HideAllImages();
        }
Esempio n. 8
0
 private void CheckBoxDisableKeyboardAPI_OnUnchecked(object sender, RoutedEventArgs e)
 {
     try
     {
         AppEventHandler.ForwardKeyPressEvent(this, true);
         GeneralDirty(sender, e);
     }
     catch (Exception ex)
     {
         Common.ShowErrorMessageBox(ex);
     }
 }
Esempio n. 9
0
        public StreamDeckUserControl(GamingPanelEnum panelType, HIDSkeleton hidSkeleton, TabItem parentTabItem)
        {
            InitializeComponent();
            ParentTabItem = parentTabItem;

            _streamDeckPanel = new StreamDeckPanel(panelType, hidSkeleton);

            UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel);
            UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel);

            StackPanelButtonUI.Children.Clear();
            switch (panelType)
            {
            case GamingPanelEnum.StreamDeckMini:
            {
                var child = new UserControlStreamDeckUIMini(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);

                break;
            }

            case GamingPanelEnum.StreamDeck:
            case GamingPanelEnum.StreamDeckV2:
            case GamingPanelEnum.StreamDeckMK2:
            {
                var child = new UserControlStreamDeckUINormal(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);

                break;
            }

            case GamingPanelEnum.StreamDeckXL:
            {
                var child = new UserControlStreamDeckUIXL(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);
                break;
            }
            }


            SDEventHandler.AttachStreamDeckListener(UCStreamDeckButtonAction);
            SDEventHandler.AttachStreamDeckListener(UCStreamDeckButtonFace);
            SDEventHandler.AttachStreamDeckListener(_uiButtonGrid);
            SDEventHandler.AttachStreamDeckConfigListener(_uiButtonGrid);
            SDEventHandler.AttachStreamDeckListener(this);
            SDEventHandler.AttachActionTypeChangedListener(UCStreamDeckButtonFace);
            AppEventHandler.AttachGamingPanelListener(this);
            UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel);
            UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel);
        }
        public RadioPanelPZ69UserControlBf109(HIDSkeleton hidSkeleton, TabItem parentTabItem)
        {
            InitializeComponent();
            ParentTabItem = parentTabItem;

            HideAllImages();
            _radioPanelPZ69 = new RadioPanelPZ69Bf109(hidSkeleton)
            {
                FrequencyKnobSensitivity = Settings.Default.RadioFrequencyKnobSensitivity
            };

            AppEventHandler.AttachGamingPanelListener(this);
        }
        public RadioPanelPZ69UserControlAV8BNA(HIDSkeleton hidSkeleton, TabItem parentTabItem)
        {
            InitializeComponent();
            ParentTabItem = parentTabItem;

            HideAllImages();
            _radioPanelPZ69 = new RadioPanelPZ69AV8BNA(hidSkeleton)
            {
                FrequencyKnobSensitivity = -1//doesn't work with 0 value Settings.Default.RadioFrequencyKnobSensitivity;
            };

            AppEventHandler.AttachGamingPanelListener(this);
        }
Esempio n. 12
0
        public void Event_MultiPanel_SettingsModified_Proper_Attachment()
        {
            var gamingPanelSkeleton =
                new GamingPanelSkeleton(GamingPanelVendorEnum.Saitek, GamingPanelEnum.PZ70MultiPanel);
            var multiPanelPZ70 = new MultiPanelPZ70(new HIDSkeleton(gamingPanelSkeleton, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));

            //MultiPanel
            Assert.True(BIOSEventHandler.OnDcsDataAddressValueEventSubscribed());
            Assert.True(AppEventHandler.OnForwardPanelEventChangedSubscribed());

            //GamingPanel
            Assert.True(AppEventHandler.OnProfileEventSubscribed());
            Assert.True(AppEventHandler.OnSavePanelSettingsSubscribed());
            Assert.True(AppEventHandler.OnSavePanelSettingsJSONSubscribed());
        }
 public static void SendBinding(HIDSkeleton hidSkeleton)
 {
     lock (_genericBindingsLock)
     {
         foreach (var genericPanelBinding in _genericBindings)
         {
             if (genericPanelBinding.Match(hidSkeleton))
             {
                 genericPanelBinding.InUse = true;
                 AppEventHandler.ProfileEvent(null, ProfileEventEnum.ProfileSettings, genericPanelBinding,
                                              DCSFPProfile.SelectedProfile);
             }
         }
     }
 }
        // Protected implementation of Dispose pattern.
        protected override void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    _radioPanelPZ69.Dispose();
                    AppEventHandler.DetachGamingPanelListener(this);
                }

                _disposed = true;
            }

            // Call base class implementation.
            base.Dispose(disposing);
        }
Esempio n. 15
0
        // Protected implementation of Dispose pattern.
        protected override void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    _backlitPanelBIP.Dispose();
                    AppEventHandler.DetachGamingPanelListener(this);
                    AppEventHandler.DetachLEDLightListener(this);
                }

                _disposed = true;
            }

            // Call base class implementation.
            base.Dispose(disposing);
        }
 public static void SendBinding(string hidInstance)
 {
     lock (_genericBindingsLock)
     {
         var hardwareFound = HIDHandler.GetInstance().HIDSkeletons
                             .Any(o => o.IsAttached && o.HIDInstance.Equals(hidInstance));
         foreach (var genericPanelBinding in _genericBindings)
         {
             if (genericPanelBinding.HIDInstance.Equals(hidInstance) && genericPanelBinding.InUse == false &&
                 hardwareFound)
             {
                 genericPanelBinding.InUse = true;
                 AppEventHandler.ProfileEvent(null, ProfileEventEnum.ProfileSettings, genericPanelBinding,
                                              DCSFPProfile.SelectedProfile);
             }
         }
     }
 }
        private void OnReport(HidReport report)
        {
            if (TypeOfPanel == GamingPanelEnum.TPM && report.Data.Length == 5)
            {
                Array.Copy(NewSaitekPanelValueTPM, OldSaitekPanelValueTPM, 5);
                Array.Copy(report.Data, NewSaitekPanelValueTPM, 5);
                var hashSet = GetHashSetOfChangedKnobs(OldSaitekPanelValueTPM, NewSaitekPanelValueTPM);
                if (hashSet.Count > 0)
                {
                    GamingPanelKnobChanged(!FirstReportHasBeenRead, hashSet);
                    AppEventHandler.SwitchesChanged(this, HIDSkeletonBase.HIDInstance, TypeOfPanel, hashSet);
                }

                FirstReportHasBeenRead = true;
            }
            else if (report.Data.Length == 3)
            {
                Array.Copy(NewSaitekPanelValue, OldSaitekPanelValue, 3);
                Array.Copy(report.Data, NewSaitekPanelValue, 3);
                var hashSet = GetHashSetOfChangedKnobs(OldSaitekPanelValue, NewSaitekPanelValue);
                if (hashSet.Count > 0)
                {
                    GamingPanelKnobChanged(!FirstReportHasBeenRead, hashSet);
                    AppEventHandler.SwitchesChanged(this, HIDSkeletonBase.HIDInstance, TypeOfPanel, hashSet);
                }

                FirstReportHasBeenRead = true;
            }
            else if (report.Data.Length == 27)
            {
                Array.Copy(NewPanelValueFarmingPanel, OldPanelValueFarmingPanel, 27);
                Array.Copy(report.Data, NewPanelValueFarmingPanel, 27);
                var hashSet = GetHashSetOfChangedKnobs(OldPanelValueFarmingPanel, NewPanelValueFarmingPanel);
                if (hashSet.Count > 0)
                {
                    GamingPanelKnobChanged(!FirstReportHasBeenRead, hashSet);
                    AppEventHandler.SwitchesChanged(this, HIDSkeletonBase.HIDInstance, TypeOfPanel, hashSet);
                }

                FirstReportHasBeenRead = true;
            }

            StartListeningForHidPanelChanges();
        }
Esempio n. 18
0
        public override void ImportSettings(GenericPanelBinding genericPanelBinding)
        {
            ClearSettings();

            BindingHash = genericPanelBinding.BindingHash;

            var settings = genericPanelBinding.Settings;

            foreach (var setting in settings)
            {
                if (!setting.StartsWith("#") && setting.Length > 2)
                {
                    if (setting.StartsWith("TPMPanelSwitch{"))
                    {
                        var keyBinding = new KeyBindingTPM();
                        keyBinding.ImportSettings(setting);
                        _keyBindings.Add(keyBinding);
                    }
                    else if (setting.StartsWith("TPMPanelOSCommand"))
                    {
                        var operatingSystemCommand = new OSCommandBindingTPM();
                        operatingSystemCommand.ImportSettings(setting);
                        _operatingSystemCommandBindings.Add(operatingSystemCommand);
                    }
                    else if (setting.StartsWith("TPMPanelDCSBIOSControl{"))
                    {
                        var dcsBIOSBindingTPM = new DCSBIOSActionBindingTPM();
                        dcsBIOSBindingTPM.ImportSettings(setting);
                        _dcsBiosBindings.Add(dcsBIOSBindingTPM);
                    }
                    else if (setting.StartsWith("TPMPanelBipLink{"))
                    {
                        var tmpBipLink = new BIPLinkTPM();
                        tmpBipLink.ImportSettings(setting);
                        _bipLinks.Add(tmpBipLink);
                    }
                }
            }

            _keyBindings = KeyBindingTPM.SetNegators(_keyBindings);
            AppEventHandler.SettingsApplied(this, HIDSkeletonBase.HIDInstance, TypeOfPanel);
        }
        public override void ImportSettings(GenericPanelBinding genericPanelBinding)
        {
            ClearSettings();

            BindingHash = genericPanelBinding.BindingHash;

            var settings = genericPanelBinding.Settings;

            foreach (var setting in settings)
            {
                if (!setting.StartsWith("#") && setting.Length > 2)
                {
                    if (setting.StartsWith("RadioPanelKey{"))
                    {
                        var keyBinding = new KeyBindingPZ69();
                        keyBinding.ImportSettings(setting);
                        _keyBindings.Add(keyBinding);
                    }
                    else if (setting.StartsWith("RadioPanelOSPZ69"))
                    {
                        var operatingSystemCommand = new OSCommandBindingPZ69Emulator();
                        operatingSystemCommand.ImportSettings(setting);
                        _operatingSystemCommandBindings.Add(operatingSystemCommand);
                    }
                    else if (setting.StartsWith("PZ69DisplayValue{"))
                    {
                        var radioPanelPZ69DisplayValue = new RadioPanelPZ69DisplayValue();
                        radioPanelPZ69DisplayValue.ImportSettings(setting);
                        _displayValues.Add(radioPanelPZ69DisplayValue);
                    }
                    else if (setting.StartsWith("RadioPanelBIPLink{"))
                    {
                        var bipLinkPZ69 = new BIPLinkPZ69();
                        bipLinkPZ69.ImportSettings(setting);
                        _bipLinks.Add(bipLinkPZ69);
                    }
                }
            }

            _keyBindings = KeyBindingPZ69.SetNegators(_keyBindings);
            AppEventHandler.SettingsApplied(this, HIDSkeletonBase.HIDInstance, TypeOfPanel);
        }
Esempio n. 20
0
        public void Event_StreamDeck_OnDirtyConfigurations_Proper_Attachment()
        {
            var gamingPanelSkeleton =
                new GamingPanelSkeleton(GamingPanelVendorEnum.Saitek, GamingPanelEnum.PZ70MultiPanel);
            var streamDeckPanel = new StreamDeckPanel(GamingPanelEnum.StreamDeck, new HIDSkeleton(gamingPanelSkeleton, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), true);

            //GamingPanel
            Assert.True(AppEventHandler.OnProfileEventSubscribed());
            Assert.True(AppEventHandler.OnSavePanelSettingsSubscribed());
            Assert.True(AppEventHandler.OnSavePanelSettingsJSONSubscribed());

            //StreamDeckPanel
            Assert.True(SDEventHandler.OnStreamDeckSyncConfigurationEventSubscribed());
            Assert.True(SDEventHandler.OnDirtyConfigurationsEventHandlerEventSubscribed());
            Assert.True(SDEventHandler.OnDirtyNotificationEventHandlerSubscribed());
            Assert.True(SDEventHandler.OnStreamDeckShowNewLayerEventSubscribed());
            Assert.True(SDEventHandler.OnRemoteStreamDeckShowNewLayerEventSubscribed());
            Assert.True(SDEventHandler.OnStreamDeckSelectedButtonChangedEventSubscribed());
            Assert.True(SDEventHandler.OnStreamDeckClearSettingsEventSubscribed());
        }
Esempio n. 21
0
        // Protected implementation of Dispose pattern.
        protected override void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    StackPanelButtonUI.Children.Clear();
                    SDEventHandler.DetachStreamDeckListener(UCStreamDeckButtonAction);
                    SDEventHandler.DetachStreamDeckListener(UCStreamDeckButtonFace);
                    SDEventHandler.DetachStreamDeckListener(_uiButtonGrid);
                    SDEventHandler.DetachStreamDeckConfigListener(_uiButtonGrid);
                    SDEventHandler.DetachStreamDeckListener(this);
                    SDEventHandler.DetachActionTypeChangedListener(UCStreamDeckButtonFace);
                    AppEventHandler.DetachGamingPanelListener(this);
                    _streamDeckPanel.Dispose();
                }

                _disposed = true;
            }

            // Call base class implementation.
            base.Dispose(disposing);
        }
        public override void ImportSettings(GenericPanelBinding genericPanelBinding)
        {
            ClearSettings();

            BindingHash = genericPanelBinding.BindingHash;

            var settings = genericPanelBinding.Settings;

            foreach (var setting in settings)
            {
                if (!setting.StartsWith("#") && setting.Length > 2)
                {
                    if (setting.StartsWith("SwitchPanelKey{"))
                    {
                        var keyBinding = new KeyBindingPZ55();
                        keyBinding.ImportSettings(setting);
                        _keyBindings.Add(keyBinding);
                    }
                    else if (setting.StartsWith("SwitchPanelOSPZ55"))
                    {
                        var operatingSystemCommand = new OSCommandBindingPZ55();
                        operatingSystemCommand.ImportSettings(setting);
                        _operatingSystemCommandBindings.Add(operatingSystemCommand);
                    }
                    else if (setting.StartsWith("SwitchPanelLed"))
                    {
                        var colorOutput = new DcsOutputAndColorBindingPZ55();
                        colorOutput.ImportSettings(setting);
                        _listColorOutputBinding.Add(colorOutput);
                    }
                    else if (setting.StartsWith("SwitchPanelDCSBIOSControl{"))
                    {
                        var dcsBIOSBindingPZ55 = new DCSBIOSActionBindingPZ55();
                        dcsBIOSBindingPZ55.ImportSettings(setting);
                        _dcsBiosBindings.Add(dcsBIOSBindingPZ55);
                    }
                    else if (setting.StartsWith("SwitchPanelBIPLink{"))
                    {
                        var bipLinkPZ55 = new BIPLinkPZ55();
                        bipLinkPZ55.ImportSettings(setting);
                        _bipLinks.Add(bipLinkPZ55);
                    }
                    else if (setting.StartsWith("ManualLandingGearLEDs{"))
                    {
                        _manualLandingGearLeds = setting.Contains("True");
                    }
                    else if (setting.StartsWith("ManualLandingGearLedsColorDown{"))
                    {
                        _manualLandingGearLedsColorDown = GetSettingPanelLEDColor(setting);
                    }
                    else if (setting.StartsWith("ManualLandingGearLedsColorUp{"))
                    {
                        _manualLandingGearLedsColorUp = GetSettingPanelLEDColor(setting);
                    }
                    else if (setting.StartsWith("ManualLandingGearLedsColorTrans{"))
                    {
                        _manualLandingGearLedsColorTrans = GetSettingPanelLEDColor(setting);
                    }
                    else if (setting.StartsWith("ManualLandingGearTransTimeSeconds{"))
                    {
                        _manualLandingGearTransTimeSeconds = Convert.ToInt16(GetValueFromSetting(setting));
                    }
                }
            }

            AppEventHandler.SettingsApplied(this, HIDSkeletonBase.HIDInstance, TypeOfPanel);
            _keyBindings = KeyBindingPZ55.SetNegators(_keyBindings);
        }
Esempio n. 23
0
        /// <summary>
        ///   Adds the shop event.
        /// </summary>
        /// <param name = "objectType">Type of the object.</param>
        /// <param name = "addEvent">The add event.</param>
        public void RegisterHandler(Type objectType, AppEventHandler addEvent)
        {
            if (!_events.ContainsKey(objectType))
            {
                _events[objectType] = new List<Delegate>();
            }

            _events[objectType].Add(addEvent);
        }
Esempio n. 24
0
        internal static IWindsorContainer BuildContainer()
        {
            string assemblyName;

            Func <SAPbobsCOM.Company>[] companyFactory = (customCompanyFactory == null)
                ? new Func <SAPbobsCOM.Company>[] { SAPServiceFactory.CompanyFactory } : customCompanyFactory;

            Container = new WindsorContainer();
            Container.Kernel.Resolver.AddSubResolver(new ArrayResolver(Container.Kernel));
            // proxy for forms.
            Container.Register(Component.For <IInterceptor>().ImplementedBy <FormProxy>().Named("formProxy"));
            // proxy for FormEvents
            Container.Register(Component.For <IInterceptor>().ImplementedBy <EventProxy>().Named("eventProxy"));
            // proxy for Transactions
            Container.Register(Component.For <IInterceptor>().ImplementedBy <TransactionProxy>().Named("transactionProxy"));
            // forms are Transient.
            Container.Register(Classes.FromThisAssembly().IncludeNonPublicTypes().InNamespace("Dover.Framework.Form")
                               .WithService.DefaultInterfaces().LifestyleTransient());

            // SAP App Facttory.
            Container.Register(Component.For <SAPbouiCOM.Application>().UsingFactoryMethod(SAPServiceFactory.ApplicationFactory));

            // company factory (use default, that initializes DI API from App if none was provided).
            for (int i = 0; i < companyFactory.Length; i++)
            {
                Container.Register(Component.For <SAPbobsCOM.Company>().UsingFactoryMethod(companyFactory[i]).Named("company" + i));
            }
            for (int i = 0; i < companyFactory.Length; i++)
            {
                Container.Register(Component.For <BusinessOneDAO>().ImplementedBy <BusinessOneDAOSQLImpl>()
                                   .DependsOn(Dependency.OnComponent(typeof(SAPbobsCOM.Company), "company" + i)).Named("b1dao" + i));
            }

            string runningFolder = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);

            // AddinManager registration. If I'm an AddIn, get addinManager from AppDomain, so
            // both (addin AppDomain and inception AppDomain) references the same implementation.
            AddinManager addinManager = (AddinManager)AppDomain.CurrentDomain.GetData("frameworkManager");

            if (addinManager != null)
            {
                addinManagerSponsor = new Sponsor <AddinManager>(addinManager);
                Container.Register(Component.For <AddinManager>().Instance(addinManager));
            }

            AppEventHandler appEventHandler = (AppEventHandler)AppDomain.CurrentDomain.GetData("appHandler");

            if (appEventHandler != null)
            {
                appEventHandlerSponsor = new Sponsor <AppEventHandler>(appEventHandler);
                Container.Register(Component.For <AppEventHandler>().Instance(appEventHandler));
            }

            // Service registration, they are singleton.
            Container.Register(Classes.FromThisAssembly().IncludeNonPublicTypes().InNamespace("Dover.Framework.Service")
                               .WithService.DefaultInterfaces().LifestyleSingleton());
            // DAO registration. Abstract classes, they're singleton.
            Container.Register(Component.For <BusinessOneUIDAO>().ImplementedBy <BusinessOneUIDAOImpl>());
            Container.Register(Component.For <AssemblyDAO>().ImplementedBy <AssemblyDAOImpl>());
            Container.Register(Component.For <PermissionDAO>().ImplementedBy <PermissionDAOSQLImpl>());

            // Core and MicroCore
            Container.Register(Component.For <MicroCore>().LifestyleSingleton());
            Container.Register(Component.For <MicroBoot>().LifestyleSingleton());
            Container.Register(Component.For <Boot>().LifestyleSingleton());

            assemblyName = Assembly.GetEntryAssembly() == null ? (string)AppDomain.CurrentDomain.GetData("assemblyName")
                : Assembly.GetEntryAssembly().GetName().Name;

            if (assemblyName == "Framework")
            {
                #if DEBUG
                CheckProxy(Assembly.Load(assemblyName)); // if passed on debug tests, we do not need this on production.
                #endif
                assemblyName = "Dover";                  // Framework should be threated the same as Dover.
            }

            if (!File.Exists(assemblyName + ".config"))
            {
                assemblyName = "DoverTemp"; // Temp AppDomain logging.
            }
            Container.AddFacility <LoggingFacility>(f => f.UseLog4Net(assemblyName + ".config"));

            var logger = Container.Resolve <ILogger>();
            logger.Debug(DebugString.Format(Messages.StartupFolder, runningFolder));
            SAPServiceFactory.Logger = logger;

            var b1dao = Container.Resolve <BusinessOneDAO>();
            SAPAppender.B1DAO = b1dao;

            return(Container);
        }
Esempio n. 25
0
 internal static extern bool SetConsoleCtrlHandler(AppEventHandler handler, bool add);
Esempio n. 26
0
 public MenuConfiguration(BusinessOneDAO b1DAO, AppEventHandler appEvent)
 {
     this.b1DAO    = b1DAO;
     this.appEvent = appEvent;
 }
Esempio n. 27
0
        public void SetLED(BIPLedPositionEnum bipLedPositionEnum, PanelLEDColor panelLEDColor)
        {
            try
            {
                var    row   = GetRow(bipLedPositionEnum);
                var    index = GetIndex(bipLedPositionEnum);
                byte[] array = { 0x0 };
                byte   mask  = 0;

                switch (row)
                {
                case 1:
                {
                    array = _upperRowBytes;
                    break;
                }

                case 2:
                {
                    array = _middleRowBytes;
                    break;
                }

                case 3:
                {
                    array = _lowerRowBytes;
                    break;
                }
                }

                switch (index)
                {
                case 1:
                {
                    mask = _1BIPMask;
                    break;
                }

                case 2:
                {
                    mask = _2BIPMask;
                    break;
                }

                case 3:
                {
                    mask = _3BIPMask;
                    break;
                }

                case 4:
                {
                    mask = _4BIPMask;
                    break;
                }

                case 5:
                {
                    mask = _5BIPMask;
                    break;
                }

                case 6:
                {
                    mask = _6BIPMask;
                    break;
                }

                case 7:
                {
                    mask = _7BIPMask;
                    break;
                }

                case 8:
                {
                    mask = _8BIPMask;
                    break;
                }
                }

                switch (panelLEDColor)
                {
                case PanelLEDColor.DARK:
                {
                    // Set all to 0
                    array[0] = (array[0] &= (byte)~mask);
                    array[1] = (array[1] &= (byte)~mask);
                    break;
                }

                case PanelLEDColor.GREEN:
                {
                    // Set first byte's bit to 1
                    array[0] = array[0] |= mask;
                    array[1] = (array[1] &= (byte)~mask);
                    break;
                }

                case PanelLEDColor.YELLOW:
                {
                    // Set both byte's bit to 1
                    array[0] = array[0] |= mask;
                    array[1] = array[1] |= mask;
                    break;
                }

                case PanelLEDColor.RED:
                {
                    // Set second byte's bit to 1
                    array[0] = (array[0] &= (byte)~mask);
                    array[1] = array[1] |= mask;
                    break;
                }
                }

                /*
                 * 01000000 2nd BIP from left GREEN
                 * 00000000
                 *
                 * 01000000 2nd BIP from left YELLOW
                 * 01000000
                 *
                 * 00000000 2nd BIP from left RED
                 * 01000000
                 *
                 * 00000000 2nd BIP from left DARK
                 * 00000000
                 *
                 */

                // _upperRowBytes = { (byte)0x0, (byte)0x0 }; //byte 1 & 4
                // _middleRowBytes = { (byte)0x0, (byte)0x0 };//byte 2 & 5
                // _lowerRowBytes = { (byte)0x0, (byte)0x0 }; //byte 3 & 6
                var finalArray = new byte[7];
                finalArray[0] = 0xb8;
                finalArray[1] = _upperRowBytes[0];
                finalArray[2] = _middleRowBytes[0];
                finalArray[3] = _lowerRowBytes[0];
                finalArray[4] = _upperRowBytes[1];
                finalArray[5] = _middleRowBytes[1];
                finalArray[6] = _lowerRowBytes[1];

                SendLEDData(finalArray);


                AppEventHandler.LedLightChanged(this, HIDInstance, null, PanelLEDColor.DARK);
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }
        }