|
48 | 48 | #define AVINPUT_METHOD_GET_EDID_VERSION "getEdidVersion"
|
49 | 49 | #define AVINPUT_METHOD_SET_EDID_ALLM_SUPPORT "setEdid2AllmSupport"
|
50 | 50 | #define AVINPUT_METHOD_GET_EDID_ALLM_SUPPORT "getEdid2AllmSupport"
|
| 51 | +#define AVINPUT_METHOD_GET_HDMI_COMPATIBILITY_VERSION "getHdmiVersion" |
51 | 52 | #define AVINPUT_METHOD_SET_MIXER_LEVELS "setMixerLevels"
|
52 | 53 | #define AVINPUT_METHOD_START_INPUT "startInput"
|
53 | 54 | #define AVINPUT_METHOD_STOP_INPUT "stopInput"
|
@@ -223,6 +224,7 @@ void AVInput::RegisterAll()
|
223 | 224 | Register<JsonObject, JsonObject>(_T(AVINPUT_METHOD_SET_MIXER_LEVELS), &AVInput::setMixerLevels, this);
|
224 | 225 | Register<JsonObject, JsonObject>(_T(AVINPUT_METHOD_SET_EDID_ALLM_SUPPORT), &AVInput::setEdid2AllmSupportWrapper, this);
|
225 | 226 | Register<JsonObject, JsonObject>(_T(AVINPUT_METHOD_GET_EDID_ALLM_SUPPORT), &AVInput::getEdid2AllmSupportWrapper, this);
|
| 227 | + Register<JsonObject, JsonObject>(_T(AVINPUT_METHOD_GET_HDMI_COMPATIBILITY_VERSION), &AVInput::getHdmiVersionWrapper, this); |
226 | 228 | Register<JsonObject, JsonObject>(_T(AVINPUT_METHOD_START_INPUT), &AVInput::startInput, this);
|
227 | 229 | Register<JsonObject, JsonObject>(_T(AVINPUT_METHOD_STOP_INPUT), &AVInput::stopInput, this);
|
228 | 230 | Register<JsonObject, JsonObject>(_T(AVINPUT_METHOD_SCALE_INPUT), &AVInput::setVideoRectangleWrapper, this);
|
@@ -1362,6 +1364,53 @@ uint32_t AVInput::setEdidVersionWrapper(const JsonObject& parameters, JsonObject
|
1362 | 1364 | }
|
1363 | 1365 | }
|
1364 | 1366 |
|
| 1367 | +uint32_t AVInput::getHdmiVersionWrapper(const JsonObject& parameters, JsonObject& response) |
| 1368 | +{ |
| 1369 | + LOGINFOMETHOD(); |
| 1370 | + returnIfParamNotFound(parameters, "portId"); |
| 1371 | + string sPortId = parameters["portId"].String(); |
| 1372 | + int portId = 0; |
| 1373 | + |
| 1374 | + try { |
| 1375 | + portId = stoi(sPortId); |
| 1376 | + }catch (const std::exception& err) { |
| 1377 | + LOGWARN("sPortId invalid paramater: %s ", sPortId.c_str()); |
| 1378 | + returnResponse(false); |
| 1379 | + } |
| 1380 | + |
| 1381 | + dsHdmiMaxCapabilityVersion_t hdmiCapVersion = HDMI_COMPATIBILITY_VERSION_14; |
| 1382 | + |
| 1383 | + try { |
| 1384 | + device::HdmiInput::getInstance().getHdmiVersion(portId, &(hdmiCapVersion)); |
| 1385 | + LOGWARN("AVInput::getHdmiVersion Hdmi Version:%d", hdmiCapVersion); |
| 1386 | + } |
| 1387 | + catch (const device::Exception& err) { |
| 1388 | + LOG_DEVICE_EXCEPTION1(std::to_string(portId)); |
| 1389 | + returnResponse(false); |
| 1390 | + } |
| 1391 | + |
| 1392 | + |
| 1393 | + switch ((int)hdmiCapVersion){ |
| 1394 | + case HDMI_COMPATIBILITY_VERSION_14: |
| 1395 | + response["HdmiCapabilityVersion"] = "1.4"; |
| 1396 | + break; |
| 1397 | + case HDMI_COMPATIBILITY_VERSION_20: |
| 1398 | + response["HdmiCapabilityVersion"] = "2.0"; |
| 1399 | + break; |
| 1400 | + case HDMI_COMPATIBILITY_VERSION_21: |
| 1401 | + response["HdmiCapabilityVersion"] = "2.1"; |
| 1402 | + break; |
| 1403 | + } |
| 1404 | + |
| 1405 | + |
| 1406 | + if(hdmiCapVersion == HDMI_COMPATIBILITY_VERSION_MAX) |
| 1407 | + { |
| 1408 | + returnResponse(false); |
| 1409 | + }else{ |
| 1410 | + returnResponse(true); |
| 1411 | + } |
| 1412 | +} |
| 1413 | + |
1365 | 1414 | int AVInput::setEdidVersion(int iPort, int iEdidVer)
|
1366 | 1415 | {
|
1367 | 1416 | bool ret = true;
|
|
0 commit comments