LibCecSharp: implemented support for the new 'send inactive source' setting
[deb_libcec.git] / src / LibCecSharp / LibCecSharp.cpp
index d6154c36cfe09ddb733b9d37bd08bd0dca4cc0aa..76dd00624e7948d3fcbf9eedfcf7d73f156f1b86 100644 (file)
@@ -45,13 +45,15 @@ namespace CecSharp
        public:
          LibCecSharp(LibCECConfiguration ^config)
                {
-                       CecCallbackMethods::EnableCallbacks(config->Callbacks);
+      m_callbacks = config->Callbacks;
+                       CecCallbackMethods::EnableCallbacks(m_callbacks);
                        if (!InitialiseLibCec(config))
                                throw gcnew Exception("Could not initialise LibCecSharp");
                }
 
                LibCecSharp(String ^ strDeviceName, CecDeviceTypeList ^ deviceTypes)
                {
+      m_callbacks = gcnew CecCallbackMethods();
                        LibCECConfiguration ^config = gcnew LibCECConfiguration();
                        config->SetCallbacks(this);
                        config->DeviceName  = strDeviceName;
@@ -115,6 +117,7 @@ namespace CecSharp
                        }
                        config.bPowerOffScreensaver = netConfig->PowerOffScreensaver ? 1 : 0;
                        config.bPowerOffOnStandby   = netConfig->PowerOffOnStandby ? 1 : 0;
+      config.bSendInactiveSource  = netConfig->SendInactiveSource ? 1 : 0;
                        config.callbacks            = &g_cecCallbacks;
                }
 
@@ -139,6 +142,8 @@ namespace CecSharp
 
                bool Open(String ^ strPort, int iTimeoutMs)
                {
+      CecCallbackMethods::EnableCallbacks(m_callbacks);
+      EnableCallbacks(m_callbacks);
                        marshal_context ^ context = gcnew marshal_context();
                        const char* strPortC = context->marshal_as<const char*>(strPort);
                        bool bReturn = m_libCec->Open(strPortC, iTimeoutMs);
@@ -550,5 +555,6 @@ namespace CecSharp
 
        private:
                ICECAdapter *        m_libCec;
+    CecCallbackMethods ^ m_callbacks;
        };
 }