cec: added GetActiveSource()/cec_get_active_source() and IsActiveSource()/cec_is_acti...
[deb_libcec.git] / src / testclient / main.cpp
index 0ac1c714633b225bf7b263d2491dfd8ab3afaaee..e1d0ec849afae866d19c0f29fd62f9649c7d28a7 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,21 +720,27 @@ 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);
+        bool     bActive          = parser->IsActiveSource((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 << "vendor:       " << parser->ToString((cec_vendor_id)iVendorId) << endl;
-        cout << "osd string:   " << osdName.name << endl;
-        cout << "CEC version:  " << parser->ToString(iCecVersion) << endl;
-        cout << "power status: " << parser->ToString(power) << endl;
+        cout << "address:       " << strAddr.c_str() << endl;
+        cout << "active source: " << (bActive ? "yes" : "no") << endl;
+        cout << "vendor:        " << parser->ToString((cec_vendor_id)iVendorId) << endl;
+        cout << "osd string:    " << osdName.name << endl;
+        cout << "CEC version:   " << parser->ToString(iCecVersion) << endl;
+        cout << "power status:  " << parser->ToString(power) << endl;
         if ((uint8_t)lang.device == iPtr)
-          cout << "language:     " << lang.language << endl;
+          cout << "language:      " << lang.language << endl;
         cout << endl;
       }
     }
@@ -997,6 +1003,7 @@ int main (int argc, char *argv[])
 
   if (!g_bSingleCommand)
   {
+    FlushLog(parser);
     cout << "cec device opened" << endl;
 
     parser->PowerOnDevices(CECDEVICE_TV);