This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:
Subject: cec-ctl: use cec-common Author: Hans Verkuil <hans.verk...@cisco.com> Date: Tue Aug 8 15:41:37 2017 +0200 Use cec-common.h and drop the duplicate code. Signed-off-by: Hans Verkuil <hans.verk...@cisco.com> utils/cec-ctl/Makefile.am | 3 +- utils/cec-ctl/cec-common.cpp | 1 + utils/cec-ctl/cec-ctl.cpp | 294 +------------------------------------------ utils/cec-ctl/cec-ctl.h | 4 +- 4 files changed, 10 insertions(+), 292 deletions(-) --- http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=e4968db694b6806536aa4961343e729d1f4085ca diff --git a/utils/cec-ctl/Makefile.am b/utils/cec-ctl/Makefile.am index cd6772371b9c..82e03302133b 100644 --- a/utils/cec-ctl/Makefile.am +++ b/utils/cec-ctl/Makefile.am @@ -1,7 +1,8 @@ bin_PROGRAMS = cec-ctl man_MANS = cec-ctl.1 -cec_ctl_SOURCES = cec-ctl.cpp cec-pin.cpp cec-ctl.h +cec_ctl_SOURCES = cec-ctl.cpp cec-pin.cpp cec-ctl.h cec-common.cpp +cec_ctl_CPPFLAGS = -I$(top_srcdir)/utils/common cec_ctl_LDFLAGS = -lrt cec-ctl.cpp: cec-ctl-gen.h diff --git a/utils/cec-ctl/cec-common.cpp b/utils/cec-ctl/cec-common.cpp new file mode 120000 index 000000000000..083f11d7be2d --- /dev/null +++ b/utils/cec-ctl/cec-common.cpp @@ -0,0 +1 @@ +../common/cec-common.cpp \ No newline at end of file diff --git a/utils/cec-ctl/cec-ctl.cpp b/utils/cec-ctl/cec-ctl.cpp index 80ca016344e9..05a6c6f37c11 100644 --- a/utils/cec-ctl/cec-ctl.cpp +++ b/utils/cec-ctl/cec-ctl.cpp @@ -855,29 +855,6 @@ static void usage(void) ); } -static std::string caps2s(unsigned caps) -{ - std::string s; - - if (caps & CEC_CAP_PHYS_ADDR) - s += "\t\tPhysical Address\n"; - if (caps & CEC_CAP_LOG_ADDRS) - s += "\t\tLogical Addresses\n"; - if (caps & CEC_CAP_TRANSMIT) - s += "\t\tTransmit\n"; - if (caps & CEC_CAP_PASSTHROUGH) - s += "\t\tPassthrough\n"; - if (caps & CEC_CAP_RC) - s += "\t\tRemote Control Support\n"; - if (caps & CEC_CAP_MONITOR_ALL) - s += "\t\tMonitor All\n"; - if (caps & CEC_CAP_NEEDS_HPD) - s += "\t\tNeeds HPD\n"; - if (caps & CEC_CAP_MONITOR_PIN) - s += "\t\tMonitor Pin\n"; - return s; -} - static const char *power_status2s(__u8 power_status) { switch (power_status) { @@ -894,185 +871,6 @@ static const char *power_status2s(__u8 power_status) } } -static const char *version2s(unsigned version) -{ - switch (version) { - case CEC_OP_CEC_VERSION_1_3A: - return "1.3a"; - case CEC_OP_CEC_VERSION_1_4: - return "1.4"; - case CEC_OP_CEC_VERSION_2_0: - return "2.0"; - default: - return "Unknown"; - } -} - -static const char *prim_type2s(unsigned type) -{ - switch (type) { - case CEC_OP_PRIM_DEVTYPE_TV: - return "TV"; - case CEC_OP_PRIM_DEVTYPE_RECORD: - return "Record"; - case CEC_OP_PRIM_DEVTYPE_TUNER: - return "Tuner"; - case CEC_OP_PRIM_DEVTYPE_PLAYBACK: - return "Playback"; - case CEC_OP_PRIM_DEVTYPE_AUDIOSYSTEM: - return "Audio System"; - case CEC_OP_PRIM_DEVTYPE_SWITCH: - return "Switch"; - case CEC_OP_PRIM_DEVTYPE_PROCESSOR: - return "Processor"; - default: - return "Unknown"; - } -} - -static const char *la_type2s(unsigned type) -{ - switch (type) { - case CEC_LOG_ADDR_TYPE_TV: - return "TV"; - case CEC_LOG_ADDR_TYPE_RECORD: - return "Record"; - case CEC_LOG_ADDR_TYPE_TUNER: - return "Tuner"; - case CEC_LOG_ADDR_TYPE_PLAYBACK: - return "Playback"; - case CEC_LOG_ADDR_TYPE_AUDIOSYSTEM: - return "Audio System"; - case CEC_LOG_ADDR_TYPE_SPECIFIC: - return "Specific"; - case CEC_LOG_ADDR_TYPE_UNREGISTERED: - return "Unregistered"; - default: - return "Unknown"; - } -} - -const char *la2s(unsigned la) -{ - switch (la & 0xf) { - case 0: - return "TV"; - case 1: - return "Recording Device 1"; - case 2: - return "Recording Device 2"; - case 3: - return "Tuner 1"; - case 4: - return "Playback Device 1"; - case 5: - return "Audio System"; - case 6: - return "Tuner 2"; - case 7: - return "Tuner 3"; - case 8: - return "Playback Device 2"; - case 9: - return "Playback Device 3"; - case 10: - return "Tuner 4"; - case 11: - return "Playback Device 3"; - case 12: - return "Reserved 1"; - case 13: - return "Reserved 2"; - case 14: - return "Specific"; - case 15: - default: - return "Unregistered"; - } -} - -static std::string laflags2s(unsigned flags) -{ - std::string s; - - if (!flags) - return s; - - s = "("; - if (flags & CEC_LOG_ADDRS_FL_ALLOW_UNREG_FALLBACK) - s += "Allow Fallback to Unregistered, "; - if (flags & CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU) - s += "Allow RC Passthrough, "; - if (flags & CEC_LOG_ADDRS_FL_CDC_ONLY) - s += "CDC-Only, "; - if (s.length()) - s.erase(s.length() - 2, 2); - return s + ")"; -} - -static std::string all_dev_types2s(unsigned types) -{ - std::string s; - - if (types & CEC_OP_ALL_DEVTYPE_TV) - s += "TV, "; - if (types & CEC_OP_ALL_DEVTYPE_RECORD) - s += "Record, "; - if (types & CEC_OP_ALL_DEVTYPE_TUNER) - s += "Tuner, "; - if (types & CEC_OP_ALL_DEVTYPE_PLAYBACK) - s += "Playback, "; - if (types & CEC_OP_ALL_DEVTYPE_AUDIOSYSTEM) - s += "Audio System, "; - if (types & CEC_OP_ALL_DEVTYPE_SWITCH) - s += "Switch, "; - if (s.length()) - return s.erase(s.length() - 2, 2); - return s; -} - -static std::string rc_src_prof2s(unsigned prof, const std::string &prefix) -{ - std::string s; - - prof &= 0x1f; - if (prof == 0) - return prefix + "\t\tNone\n"; - if (prof & CEC_OP_FEAT_RC_SRC_HAS_DEV_ROOT_MENU) - s += prefix + "\t\tSource Has Device Root Menu\n"; - if (prof & CEC_OP_FEAT_RC_SRC_HAS_DEV_SETUP_MENU) - s += prefix + "\t\tSource Has Device Setup Menu\n"; - if (prof & CEC_OP_FEAT_RC_SRC_HAS_MEDIA_CONTEXT_MENU) - s += prefix + "\t\tSource Has Contents Menu\n"; - if (prof & CEC_OP_FEAT_RC_SRC_HAS_MEDIA_TOP_MENU) - s += prefix + "\t\tSource Has Media Top Menu\n"; - if (prof & CEC_OP_FEAT_RC_SRC_HAS_MEDIA_CONTEXT_MENU) - s += prefix + "\t\tSource Has Media Context-Sensitive Menu\n"; - return s; -} - -static std::string dev_feat2s(unsigned feat, const std::string &prefix) -{ - std::string s; - - feat &= 0x7e; - if (feat == 0) - return prefix + "\t\tNone\n"; - if (feat & CEC_OP_FEAT_DEV_HAS_RECORD_TV_SCREEN) - s += prefix + "\t\tTV Supports <Record TV Screen>\n"; - if (feat & CEC_OP_FEAT_DEV_HAS_SET_OSD_STRING) - s += prefix + "\t\tTV Supports <Set OSD String>\n"; - if (feat & CEC_OP_FEAT_DEV_HAS_DECK_CONTROL) - s += prefix + "\t\tSupports Deck Control\n"; - if (feat & CEC_OP_FEAT_DEV_HAS_SET_AUDIO_RATE) - s += prefix + "\t\tSource Supports <Set Audio Rate>\n"; - if (feat & CEC_OP_FEAT_DEV_SINK_HAS_ARC_TX) - s += prefix + "\t\tSink Supports ARC Tx\n"; - if (feat & CEC_OP_FEAT_DEV_SOURCE_HAS_ARC_RX) - s += prefix + "\t\tSource Supports ARC Rx\n"; - return s; -} - /* * Most of these vendor IDs come from include/cectypes.h from libcec. */ @@ -2168,20 +1966,6 @@ int main(int argc, char **argv) return 1; } - if (!options[OptSkipInfo]) { - printf("Driver Info:\n"); - printf("\tDriver Name : %s\n", caps.driver); - printf("\tAdapter Name : %s\n", caps.name); - printf("\tCapabilities : 0x%08x\n", caps.capabilities); - printf("%s", caps2s(caps.capabilities).c_str()); - printf("\tDriver version : %d.%d.%d\n", - caps.version >> 16, - (caps.version >> 8) & 0xff, - caps.version & 0xff); - printf("\tAvailable Logical Addresses: %u\n", - caps.available_log_addrs); - } - bool set_log_addrs = (node.caps & CEC_CAP_LOG_ADDRS) && flags; bool set_phys_addr = (node.caps & CEC_CAP_PHYS_ADDR) && options[OptPhysAddr]; bool clear_log_addrs = (node.caps & CEC_CAP_LOG_ADDRS) && options[OptClear]; @@ -2197,11 +1981,6 @@ int main(int argc, char **argv) doioctl(&node, CEC_ADAP_S_PHYS_ADDR, &phys_addr); doioctl(&node, CEC_ADAP_G_PHYS_ADDR, &phys_addr); - if (!options[OptSkipInfo]) { - printf("\tPhysical Address : %x.%x.%x.%x\n", - phys_addr >> 12, (phys_addr >> 8) & 0xf, - (phys_addr >> 4) & 0xf, phys_addr & 0xf); - } if (set_log_addrs) { struct cec_log_addrs laddrs = {}; @@ -2285,75 +2064,10 @@ int main(int argc, char **argv) node.num_log_addrs = laddrs.num_log_addrs; node.log_addr_mask = laddrs.log_addr_mask; node.phys_addr = phys_addr; - if (!options[OptSkipInfo]) { - printf("\tLogical Address Mask : 0x%04x\n", laddrs.log_addr_mask); - printf("\tCEC Version : %s\n", version2s(laddrs.cec_version)); - if (laddrs.vendor_id != CEC_VENDOR_ID_NONE) - printf("\tVendor ID : 0x%06x%s\n", - laddrs.vendor_id, vendor2s(laddrs.vendor_id)); - printf("\tOSD Name : '%s'\n", laddrs.osd_name); - printf("\tLogical Addresses : %u %s\n", - laddrs.num_log_addrs, laflags2s(laddrs.flags).c_str()); - } - for (unsigned i = 0; !options[OptSkipInfo] && i < laddrs.num_log_addrs; i++) { - if (laddrs.log_addr[i] == CEC_LOG_ADDR_INVALID) { - printf("\n\t Logical Address : Not Allocated\n"); - } else { - printf("\n\t Logical Address : %d (%s)\n", - laddrs.log_addr[i], la2s(laddrs.log_addr[i])); - phys_addrs[laddrs.log_addr[i]] = phys_addr; - } - printf("\t Primary Device Type : %s\n", - prim_type2s(laddrs.primary_device_type[i])); - printf("\t Logical Address Type : %s\n", - la_type2s(laddrs.log_addr_type[i])); - if (laddrs.cec_version < CEC_OP_CEC_VERSION_2_0) - continue; - printf("\t All Device Types : %s\n", - all_dev_types2s(laddrs.all_device_types[i]).c_str()); - - bool is_dev_feat = false; - for (unsigned idx = 0; idx < sizeof(laddrs.features[0]); idx++) { - __u8 byte = laddrs.features[i][idx]; - - if (!is_dev_feat) { - if (byte & 0x40) { - printf("\t RC Source Profile :\n%s", - rc_src_prof2s(byte, "").c_str()); - } else { - const char *s = "Reserved"; - - switch (byte & 0xf) { - case 0: - s = "None"; - break; - case 2: - s = "RC Profile 1"; - break; - case 6: - s = "RC Profile 2"; - break; - case 10: - s = "RC Profile 3"; - break; - case 14: - s = "RC Profile 4"; - break; - } - printf("\t RC TV Profile : %s\n", s); - } - } else { - printf("\t Device Features :\n%s", - dev_feat2s(byte, "").c_str()); - } - if (byte & CEC_OP_FEAT_EXT) - continue; - if (!is_dev_feat) - is_dev_feat = true; - else - break; - } - } + + if (!options[OptSkipInfo]) + cec_driver_info(caps, laddrs, phys_addr); + if (node.num_log_addrs == 0) { if (options[OptMonitor] || options[OptMonitorAll] || options[OptMonitorPin] || options[OptStorePin]) diff --git a/utils/cec-ctl/cec-ctl.h b/utils/cec-ctl/cec-ctl.h index 504907378aa9..2bf8c13e0a60 100644 --- a/utils/cec-ctl/cec-ctl.h +++ b/utils/cec-ctl/cec-ctl.h @@ -18,10 +18,12 @@ #ifndef _CEC_CTL_H_ #define _CEC_CTL_H_ +#include <cec-common.h> + // cec-ctl.cpp extern bool show_info; std::string ts2s(__u64 ts); -const char *la2s(unsigned la); +//const char *la2s(unsigned la); // cec-pin.cpp extern __u64 eob_ts; _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits