cec: add GetDevicePhysicalAddress()/cec_get_device_physical_address()
[deb_libcec.git] / src / testclient / main.cpp
index 0ac1c714633b225bf7b263d2491dfd8ab3afaaee..c1f3bf7536952edcd7f95de304bea5c4012f7d22 100644 (file)
@@ -609,7 +609,7 @@ bool ProcessCommandLAD(ICECAdapter *parser, const string &command, string &argum
   {
     cout << "listing active devices:" << endl;
     cec_logical_addresses addresses = parser->GetActiveDevices();
-    for (uint8_t iPtr = 0; iPtr < 16; iPtr++)
+    for (uint8_t iPtr = 0; iPtr <= 11; iPtr++)
       if (addresses[iPtr])
         cout << "logical address " << (int)iPtr << endl;
     return true;
@@ -720,15 +720,19 @@ bool ProcessCommandSCAN(ICECAdapter *parser, const string &command, string &argu
     {
       if (addresses[iPtr])
       {
-        uint64_t iVendorId      = parser->GetDeviceVendorId((cec_logical_address)iPtr);
-        cec_version iCecVersion = parser->GetDeviceCecVersion((cec_logical_address)iPtr);
-        cec_power_status power  = parser->GetDevicePowerStatus((cec_logical_address)iPtr);
-        cec_osd_name osdName    = parser->GetOSDName((cec_logical_address)iPtr);
+        uint16_t iPhysicalAddress = parser->GetDevicePhysicalAddress((cec_logical_address)iPtr);
+        uint64_t iVendorId        = parser->GetDeviceVendorId((cec_logical_address)iPtr);
+        cec_version iCecVersion   = parser->GetDeviceCecVersion((cec_logical_address)iPtr);
+        cec_power_status power    = parser->GetDevicePowerStatus((cec_logical_address)iPtr);
+        cec_osd_name osdName      = parser->GetOSDName((cec_logical_address)iPtr);
+        CStdString strAddr;
+        strAddr.Format("%04x", iPhysicalAddress);
         cec_menu_language lang;
         lang.device = CECDEVICE_UNKNOWN;
         parser->GetDeviceMenuLanguage((cec_logical_address)iPtr, &lang);
 
         cout << "device #" << (int)iPtr << ": " << parser->ToString((cec_logical_address)iPtr) << endl;
+        cout << "address:      " << strAddr.c_str() << endl;
         cout << "vendor:       " << parser->ToString((cec_vendor_id)iVendorId) << endl;
         cout << "osd string:   " << osdName.name << endl;
         cout << "CEC version:  " << parser->ToString(iCecVersion) << endl;
@@ -997,6 +1001,7 @@ int main (int argc, char *argv[])
 
   if (!g_bSingleCommand)
   {
+    FlushLog(parser);
     cout << "cec device opened" << endl;
 
     parser->PowerOnDevices(CECDEVICE_TV);