LibCecSharp(LibCECConfiguration ^config)
{
m_configuration = config;
- m_configuration->SetCallbacks(this);
+ CecCallbackMethods::EnableCallbacks(m_configuration->Callbacks);
if (!InitialiseLibCec())
throw gcnew Exception("Could not initialise LibCecSharp");
}
return m_libCec->SetLogicalAddress((cec_logical_address) logicalAddress);
}
- bool SetPhysicalAddress(int16_t physicalAddress)
+ bool SetPhysicalAddress(uint16_t physicalAddress)
{
return m_libCec->SetPhysicalAddress(physicalAddress);
}
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;
+ config.Clear();
+
+ if (m_libCec->GetCurrentConfiguration(&config))
+ {
+ configuration->BaseDevice = (CecLogicalAddress)config.baseDevice;
+ configuration->DeviceName = gcnew String(config.strDeviceName);
+ configuration->HDMIPort = config.iHDMIPort;
+ configuration->PhysicalAddress = config.iPhysicalAddress;
+ configuration->PowerOffOnStandby = config.bPowerOffOnStandby == 1;
+ configuration->PowerOffScreensaver = config.bPowerOffScreensaver == 1;
+ configuration->PowerOffShutdown = config.bPowerOffShutdown == 1;
+ configuration->PowerOnStartup = config.bPowerOnStartup == 1;
+ configuration->UseTVMenuLanguage = config.bUseTVMenuLanguage == 1;
+ for (unsigned int iPtr = 0; iPtr < 5; iPtr++)
+ m_configuration->DeviceTypes->Types[iPtr] = (CecDeviceType)config.deviceTypes.types[iPtr];
+ return true;
+ }
+ return false;
+ }
+
+ bool CanPersistConfiguration(void)
+ {
+ return m_libCec->CanPersistConfiguration();
+ }
+
+ bool PersistConfiguration(LibCECConfiguration ^configuration)
+ {
+ marshal_context ^ context = gcnew marshal_context();
+ libcec_configuration config;
+ GetConfiguration(context, config);
+
+ bool bReturn = m_libCec->PersistConfiguration(&config);
+
+ delete context;
+ return bReturn;
+ }
+
String ^ ToString(CecLogicalAddress iAddress)
{
const char *retVal = m_libCec->ToString((cec_logical_address)iAddress);