From: pr.jung Date: Thu, 17 Mar 2016 05:28:11 +0000 (+0900) Subject: Get IR available information from system-info X-Git-Tag: submit/tizen/20160318.091903^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=97c6dde465d6d4653106d9b88bd3fbcc341b596f;p=platform%2Fcore%2Fapi%2Fdevice.git Get IR available information from system-info Change-Id: I70cb0de086a1db256a3f8a40b3964699ad9f27ec Signed-off-by: pr.jung --- diff --git a/src/ir.c b/src/ir.c index 35f7bb1..5b744cb 100644 --- a/src/ir.c +++ b/src/ir.c @@ -15,6 +15,7 @@ */ #include +#include #include "ir.h" #include "common.h" @@ -22,22 +23,37 @@ #define METHOD_IS_AVAILABLE "IRIsAvailable" #define METHOD_TRANSMIT "TransmitIR" +#define IR_FEATURE "http://tizen.org/feature/consumer_ir" + int device_ir_is_available(bool *available) { int ret; + bool ir_avail; if (!available) return DEVICE_ERROR_INVALID_PARAMETER; + ret = system_info_get_platform_bool(IR_FEATURE, &ir_avail); + + if (ret < 0) { + *available = false; + return DEVICE_ERROR_OPERATION_FAILED; + } else if (ret == 0 && !ir_avail) { + *available = false; + return DEVICE_ERROR_NOT_SUPPORTED; + } + ret = dbus_method_sync(DEVICED_BUS_NAME, DEVICED_PATH_IR, DEVICED_INTERFACE_IR, METHOD_IS_AVAILABLE, NULL, NULL); - if (ret < 0) + if (!ret) { + *available = false; return DEVICE_ERROR_OPERATION_FAILED; + } - *available = ret; + *available = ir_avail; return DEVICE_ERROR_NONE; } @@ -48,9 +64,22 @@ int device_ir_transmit(int carrier_frequency, int *pattern, int size) int freq_pattern[size + 1]; int ret; int i; + bool ir_avail; + ret = device_ir_is_available(&ir_avail); + if (!ir_avail) { + if (ret < 0) { + _E("IR is not supported or IR operation failed"); + return ret; + } + _E("IR is not supported"); + return DEVICE_ERROR_OPERATION_FAILED; + } + + if (!pattern) + return DEVICE_ERROR_INVALID_PARAMETER; if (size <= 0) { - _D("IR pattern size is invalid"); + _E("IR pattern size is invalid"); return DEVICE_ERROR_INVALID_PARAMETER; }