*/
#include <stdio.h>
+#include <system_info.h>
#include "ir.h"
#include "common.h"
#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;
}
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;
}