cec: added a .net CEC configuration tool
[deb_libcec.git] / src / LibCecSharp / CecSharpTypes.h
index 975c71d312b8376c80e8fa303642456c6353d51a..e88166746116a63e47d46609757dd828479ffaee 100644 (file)
@@ -369,6 +369,7 @@ namespace CecSharp
                        return Addresses[(unsigned int)iAddress] != CecLogicalAddress::Unregistered;
                }
 
+               property CecLogicalAddress          Primary;
                property array<CecLogicalAddress> ^ Addresses;
        };
 
@@ -640,11 +641,14 @@ namespace CecSharp
 
                void DestroyDelegates()
                {
-                       m_bHasCallbacks = false;
-                       delete m_callbacks;
-                       m_logMessageGCHandle.Free();
-                       m_keypressGCHandle.Free();
-                       m_commandGCHandle.Free();
+                       if (m_bHasCallbacks)
+                       {
+                               m_bHasCallbacks = false;
+                               delete m_callbacks;
+                               m_logMessageGCHandle.Free();
+                               m_keypressGCHandle.Free();
+                               m_commandGCHandle.Free();
+                       }
                }
 
                CecLogMessageManagedDelegate ^                    m_logMessageDelegate;
@@ -669,17 +673,18 @@ namespace CecSharp
                LibCECConfiguration(void)
                {
                        DeviceName          = "";
+                       DeviceTypes         = gcnew CecDeviceTypeList();
                        PhysicalAddress     = CEC_DEFAULT_PHYSICAL_ADDRESS;
                        BaseDevice          = (CecLogicalAddress)CEC_DEFAULT_BASE_DEVICE;
                        HDMIPort            = CEC_DEFAULT_HDMI_PORT;
                        ClientVersion       = CecClientVersion::VersionPre1_5;
 
                        GetSettingsFromROM  = false;
-                       UseTVMenuLanguage   = CEC_DEFAULT_SETTING_USE_TV_MENU_LANGUAGE ? true : false;
-                       PowerOnStartup      = CEC_DEFAULT_SETTING_POWER_ON_STARTUP ? true : false;
-                       PowerOffShutdown    = CEC_DEFAULT_SETTING_POWER_OFF_SHUTDOWN ? true : false;
-                       PowerOffScreensaver = CEC_DEFAULT_SETTING_POWER_OFF_SCREENSAVER ? true : false;
-                       PowerOffOnStandby   = CEC_DEFAULT_SETTING_POWER_OFF_ON_STANDBY ? true : false;
+                       UseTVMenuLanguage   = CEC_DEFAULT_SETTING_USE_TV_MENU_LANGUAGE == 1;
+                       PowerOnStartup      = CEC_DEFAULT_SETTING_POWER_ON_STARTUP == 1;
+                       PowerOffShutdown    = CEC_DEFAULT_SETTING_POWER_OFF_SHUTDOWN == 1;
+                       PowerOffScreensaver = CEC_DEFAULT_SETTING_POWER_OFF_SCREENSAVER == 1;
+                       PowerOffOnStandby   = CEC_DEFAULT_SETTING_POWER_OFF_ON_STANDBY == 1;
                }
 
                void SetCallbacks(CecCallbackMethods ^callbacks)