fixed: iPhysicalAddress was uint16_t in the prototype and uint8_t in the function definition, apart from this being wrong, it also caused cec_init to be linked as a C++ function even though it's inside an extern "C" {} block
//@{
ICECAdapter *cec_parser;
-int cec_init(const char *strDeviceName, cec_logical_address iLogicalAddress /* = CECDEVICE_PLAYBACKDEVICE1 */, uint8_t iPhysicalAddress /* = CEC_DEFAULT_PHYSICAL_ADDRESS */)
+int cec_init(const char *strDeviceName, cec_logical_address iLogicalAddress, uint16_t iPhysicalAddress)
{
cec_parser = (ICECAdapter *) CECCreate(strDeviceName, iLogicalAddress, iPhysicalAddress);
return (cec_parser != NULL) ? 1 : 0;