+ if (argc >= iArgPtr + 1)
+ {
+ if (!strcmp(argv[iArgPtr], "-f") ||
+ !strcmp(argv[iArgPtr], "--log-file") ||
+ !strcmp(argv[iArgPtr], "-sf") ||
+ !strcmp(argv[iArgPtr], "--short-log-file"))
+ {
+ if (argc >= iArgPtr + 2)
+ {
+ g_logOutput.open(argv[iArgPtr + 1]);
+ g_bShortLog = (!strcmp(argv[iArgPtr], "-sf") || !strcmp(argv[iArgPtr], "--short-log-file"));
+ iArgPtr += 2;
+ }
+ else
+ {
+ cout << "== skipped log-file parameter: no file given ==" << endl;
+ ++iArgPtr;
+ }
+ }
+ else if (!strcmp(argv[iArgPtr], "-d") ||
+ !strcmp(argv[iArgPtr], "--log-level"))
+ {
+ if (argc >= iArgPtr + 2)
+ {
+ int iNewLevel = atoi(argv[iArgPtr + 1]);
+ if (iNewLevel >= CEC_LOG_ERROR && iNewLevel <= CEC_LOG_ALL)
+ {
+ g_cecLogLevel = iNewLevel;
+ cout << "log level set to " << argv[iArgPtr + 1] << endl;
+ }
+ else
+ {
+ cout << "== skipped log-level parameter: invalid level '" << argv[iArgPtr + 1] << "' ==" << endl;
+ }
+ iArgPtr += 2;
+ }
+ else
+ {
+ cout << "== skipped log-level parameter: no level given ==" << endl;
+ ++iArgPtr;
+ }
+ }
+ else if (!strcmp(argv[iArgPtr], "-t") ||
+ !strcmp(argv[iArgPtr], "--type"))
+ {
+ if (argc >= iArgPtr + 2)
+ {
+ if (!strcmp(argv[iArgPtr + 1], "p"))
+ {
+ cout << "== using device type 'playback device'" << endl;
+ typeList.add(CEC_DEVICE_TYPE_PLAYBACK_DEVICE);
+ }
+ else if (!strcmp(argv[iArgPtr + 1], "r"))
+ {
+ cout << "== using device type 'recording device'" << endl;
+ typeList.add(CEC_DEVICE_TYPE_RECORDING_DEVICE);
+ }
+ else if (!strcmp(argv[iArgPtr + 1], "t"))
+ {
+ cout << "== using device type 'tuner'" << endl;
+ typeList.add(CEC_DEVICE_TYPE_TUNER);
+ }
+ else if (!strcmp(argv[iArgPtr + 1], "a"))
+ {
+ cout << "== using device type 'audio system'" << endl;
+ typeList.add(CEC_DEVICE_TYPE_AUDIO_SYSTEM);
+ }
+ else
+ {
+ cout << "== skipped invalid device type '" << argv[iArgPtr + 1] << "'" << endl;
+ }
+ ++iArgPtr;
+ }
+ ++iArgPtr;
+ }
+ else if (!strcmp(argv[iArgPtr], "--list-devices") ||
+ !strcmp(argv[iArgPtr], "-l"))
+ {
+ ICECAdapter *parser = create_parser(typeList);
+ if (parser)
+ {
+ list_devices(parser);
+ UnloadLibCec(parser);
+ }
+ return 0;
+ }
+ else if (!strcmp(argv[iArgPtr], "--help") ||
+ !strcmp(argv[iArgPtr], "-h"))
+ {
+ show_help(argv[0]);
+ return 0;
+ }
+ else
+ {
+ g_strPort = argv[iArgPtr++];
+ }
+ }
+ }
+
+ if (typeList.empty())
+ {
+ cout << "No device type given. Using 'playback device'" << endl;
+ typeList.add(CEC_DEVICE_TYPE_PLAYBACK_DEVICE);
+ }
+
+ ICECAdapter *parser = LibCecInit("CECTester", typeList);
+ if (!parser || parser->GetMinLibVersion() > CEC_TEST_CLIENT_VERSION)
+ {
+#ifdef __WINDOWS__
+ cout << "Cannot load libcec.dll" << endl;
+#else
+ cout << "Cannot load libcec.so" << endl;
+#endif