cec: added GetLogicalAddresses() and SetStreamPath() to LibCecSharp
[deb_libcec.git] / src / LibCecSharp / LibCecSharp.cpp
index 0f9acb12c66f4df9327ab5273c738b3462bcd391..698c81753e2c3a4354bb4feab3a7f60cdfed0e54 100644 (file)
@@ -46,7 +46,7 @@ namespace CecSharp
          LibCecSharp(LibCECConfiguration ^config)
                {
                        m_configuration = config;
-                       m_configuration->SetCallbacks(this);
+                       CecCallbackMethods::EnableCallbacks(m_configuration->Callbacks);
                        if (!InitialiseLibCec())
                                throw gcnew Exception("Could not initialise LibCecSharp");
                }
@@ -388,6 +388,26 @@ namespace CecSharp
                        return m_libCec->GetDevicePhysicalAddress((cec_logical_address)iAddress);
                }
 
+               bool SetStreamPath(CecLogicalAddress iAddress)
+               {
+                       return m_libCec->SetStreamPath((cec_logical_address)iAddress);
+               }
+
+               bool SetStreamPath(uint16_t iPhysicalAddress)
+               {
+                       return m_libCec->SetStreamPath(iPhysicalAddress);
+               }
+
+               CecLogicalAddresses ^GetLogicalAddresses(void)
+               {
+                       CecLogicalAddresses ^addr = gcnew CecLogicalAddresses();
+                       cec_logical_addresses libAddr = m_libCec->GetLogicalAddresses();
+                       for (unsigned int iPtr = 0; iPtr < 16; iPtr++)
+                               addr->Addresses[iPtr] = (CecLogicalAddress)libAddr.addresses[iPtr];
+                       addr->Primary = (CecLogicalAddress)libAddr.primary;
+                       return addr;
+               }
+
                bool GetCurrentConfiguration(LibCECConfiguration ^configuration)
                {
                        libcec_configuration config;