// limitations under the License.
//
+#include <fstream>
+#include <pcrecpp.h>
#include <memory>
-#include <dpl/log/log.h>
-#include <JSTizenExceptionFactory.h>
-#include <JSTizenException.h>
+#include <dlfcn.h>
+#include <unistd.h>
+#include <JSWebAPIErrorFactory.h>
#include <SecurityExceptions.h>
+#include <sensors.h>
+#include <system_info.h>
+#include <pkgmgr-info.h>
#include "JSDeviceCapabilitiesInfo.h"
#include "plugin_config.h"
+#include <Logger.h>
+
+#define MAXBUFSIZE 256
+#define DEVICE_PROFILE "MOBILE_FULL"
+#define DUID_KEY_STRING 28
+#define DUID_BUFFER_SIZE 100
namespace DeviceAPI {
namespace Systeminfo {
namespace {
const char* DEVICE_CAPABILITIES_BLUETOOTH = "bluetooth";
const char* DEVICE_CAPABILITIES_NFC = "nfc";
+const char* DEVICE_CAPABILITIES_NFC_RESERVED_PUSH = "nfcReservedPush";
const char* DEVICE_CAPABILITIES_MULTITOUCHCOUNT = "multiTouchCount";
const char* DEVICE_CAPABILITIES_INPUTKEYBOARD = "inputKeyboard";
+const char* DEVICE_CAPABILITIES_INPUTKEYBOARD_LAYOUT = "inputKeyboardLayout";
const char* DEVICE_CAPABILITIES_WIFI = "wifi";
const char* DEVICE_CAPABILITIES_WIFIDIRECT = "wifiDirect";
+const char* DEVICE_CAPABILITIES_OPENGLES = "opengles";
+const char* DEVICE_CAPABILITIES_OPENGLES_TEXTURE_FORMAT = "openglestextureFormat";
const char* DEVICE_CAPABILITIES_OPENGLESVERSION1_1 = "openglesVersion1_1";
const char* DEVICE_CAPABILITIES_OPENGLESVERSION2_0 = "openglesVersion2_0";
const char* DEVICE_CAPABILITIES_FMRADIO = "fmRadio";
const char* DEVICE_CAPABILITIES_PLATFORMNAME = "platformName";
const char* DEVICE_CAPABILITIES_WEBAPIVERSION = "webApiVersion";
const char* DEVICE_CAPABILITIES_NATIVEAPIVERSION = "nativeApiVersion";
+const char* DEVICE_CAPABILITIES_CAMERA = "camera";
const char* DEVICE_CAPABILITIES_CAMERAFRONT = "cameraFront";
const char* DEVICE_CAPABILITIES_CAMERAFRONTFLASH = "cameraFrontFlash";
const char* DEVICE_CAPABILITIES_CAMERABACK = "cameraBack";
const char* DEVICE_CAPABILITIES_PLATFORMCOREFPUARCH = "platformCoreFpuArch";
const char* DEVICE_CAPABILITIES_SIPVOIP = "sipVoip";
const char* DEVICE_CAPABILITIES_DUID = "duid";
-const char* DEVICE_CAPABILITIES_SPEECHROCOGNITION = "speechRecognition";
+const char* DEVICE_CAPABILITIES_SPEECH_ROCOGNITION = "speechRecognition";
+const char* DEVICE_CAPABILITIES_SPEECH_SYNTHESIS = "speechSynthesis";
const char* DEVICE_CAPABILITIES_ACCELEROMETER = "accelerometer";
+const char* DEVICE_CAPABILITIES_ACCELEROMETER_WAKEUP = "accelerometerWakeup";
const char* DEVICE_CAPABILITIES_BAROMETER = "barometer";
+const char* DEVICE_CAPABILITIES_BAROMETER_WAKEUP = "barometerWakeup";
const char* DEVICE_CAPABILITIES_GYROSCOPE = "gyroscope";
+const char* DEVICE_CAPABILITIES_GYROSCOPE_WAKEUP = "gyroscopeWakeup";
const char* DEVICE_CAPABILITIES_MAGNETOMETER = "magnetometer";
+const char* DEVICE_CAPABILITIES_MAGNETOMETER_WAKEUP = "magnetometerWakeup";
+const char* DEVICE_CAPABILITIES_PHOTOMETER = "photometer";
+const char* DEVICE_CAPABILITIES_PHOTOMETER_WAKEUP = "photometerWakeup";
const char* DEVICE_CAPABILITIES_PROXIMITY = "proximity";
+const char* DEVICE_CAPABILITIES_PROXIMITY_WAKEUP = "proximityWakeup";
+const char* DEVICE_CAPABILITIES_TILTMETER = "tiltmeter";
+const char* DEVICE_CAPABILITIES_TILTMETER_WAKEUP = "tiltmeterWakeup";
+const char* DEVICE_CAPABILITIES_DATA_ENCRYPTION = "dataEncryption";
+const char* DEVICE_CAPABILITIES_GRAPHICS_ACCELERATION = "graphicsAcceleration";
+const char* DEVICE_CAPABILITIES_PUSH = "push";
+const char* DEVICE_CAPABILITIES_TELEPHONY = "telephony";
+const char* DEVICE_CAPABILITIES_TELEPHONY_MMS = "telephonyMms";
+const char* DEVICE_CAPABILITIES_TELEPHONY_SMS = "telephonySms";
+const char* DEVICE_CAPABILITIES_SCREENSIZE_NORMAL = "screenSizeNormal";
+const char* DEVICE_CAPABILITIES_SCREENSIZE_480_800 = "screenSize480_800";
+const char* DEVICE_CAPABILITIES_SCREENSIZE_720_1280 = "screenSize720_1280";
+const char* DEVICE_CAPABILITIES_AUTO_ROTATION = "autoRotation";
+const char* DEVICE_CAPABILITIES_SHELL_APP_WIDGET = "shellAppWidget";
+const char* DEVICE_CAPABILITIES_VISION_IMAGE_RECOGNITION = "visionImageRecognition";
+const char* DEVICE_CAPABILITIES_VISION_QRCODE_GENERATION = "visionQrcodeGeneration";
+const char* DEVICE_CAPABILITIES_VISION_QRCODE_RECOGNITION = "visionQrcodeRecognition";
+const char* DEVICE_CAPABILITIES_VISION_FACE_RECOGNITION = "visionFaceRecognition";
+const char* DEVICE_CAPABILITIES_SECURE_ELEMENT = "secureElement";
+const char* DEVICE_CAPABILITIES_NATIVE_OSP_COMPATIBLE = "nativeOspCompatible";
+const char* DEVICE_CAPABILITIES_PROFILE = "profile";
}
JSClassRef JSDeviceCapabilitiesInfo::m_classRef = NULL;
JSStaticValue JSDeviceCapabilitiesInfo::m_properties[] = {
{ DEVICE_CAPABILITIES_BLUETOOTH, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_NFC, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_NFC_RESERVED_PUSH, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_MULTITOUCHCOUNT, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_INPUTKEYBOARD, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_INPUTKEYBOARD_LAYOUT, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_WIFI, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_WIFIDIRECT, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_OPENGLES, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_OPENGLES_TEXTURE_FORMAT, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_OPENGLESVERSION1_1, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_OPENGLESVERSION2_0, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_FMRADIO, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_PLATFORMNAME, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_WEBAPIVERSION, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_NATIVEAPIVERSION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_CAMERA, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_CAMERAFRONT, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_CAMERAFRONTFLASH, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_CAMERABACK, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_PLATFORMCOREFPUARCH, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_SIPVOIP, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_DUID, getProperty, NULL, kJSPropertyAttributeReadOnly },
- { DEVICE_CAPABILITIES_SPEECHROCOGNITION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_SPEECH_ROCOGNITION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_SPEECH_SYNTHESIS, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_ACCELEROMETER, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_ACCELEROMETER_WAKEUP, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_BAROMETER, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_BAROMETER_WAKEUP, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_GYROSCOPE, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_GYROSCOPE_WAKEUP, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_MAGNETOMETER, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_MAGNETOMETER_WAKEUP, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_PHOTOMETER, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_PHOTOMETER_WAKEUP, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ DEVICE_CAPABILITIES_PROXIMITY, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_PROXIMITY_WAKEUP, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_TILTMETER, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_TILTMETER_WAKEUP, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_DATA_ENCRYPTION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_GRAPHICS_ACCELERATION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_PUSH, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_TELEPHONY, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_TELEPHONY_MMS, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_TELEPHONY_SMS, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_SCREENSIZE_NORMAL, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_SCREENSIZE_480_800, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_SCREENSIZE_720_1280, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_AUTO_ROTATION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_SHELL_APP_WIDGET, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_VISION_IMAGE_RECOGNITION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_VISION_QRCODE_GENERATION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_VISION_QRCODE_RECOGNITION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_VISION_FACE_RECOGNITION, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_SECURE_ELEMENT, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_NATIVE_OSP_COMPATIBLE, getProperty, NULL, kJSPropertyAttributeReadOnly },
+ { DEVICE_CAPABILITIES_PROFILE, getProperty, NULL, kJSPropertyAttributeReadOnly },
{ 0, 0, 0, 0 }
};
void JSDeviceCapabilitiesInfo::Finalize(JSObjectRef object)
{
- LogDebug("Entered");
+ LoggerD("Entered");
JSDeviceCapabilitiesPriv* priv = static_cast<JSDeviceCapabilitiesPriv*>(JSObjectGetPrivate(object));
JSObjectSetPrivate(object, NULL);
- LogDebug("Deleting DeviceCapabilitiesInfo object");
+ LoggerD("Deleting DeviceCapabilitiesInfo object");
delete priv;
}
JSObjectRef JSDeviceCapabilitiesInfo::createJSObject(JSContextRef context, const DeviceCapabilitiesPropertiesPtr deviceCapabilitiesInfo)
{
- LogDebug("Enter");
+ LoggerD("Enter");
JSDeviceCapabilitiesPriv *priv = new JSDeviceCapabilitiesPriv(context, deviceCapabilitiesInfo);
return JSObjectMake(context, getClassRef(), priv);
}
JSValueRef JSDeviceCapabilitiesInfo::getProperty(JSContextRef context, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception)
{
- LogDebug("Enter");
+ LoggerD("Enter");
JSDeviceCapabilitiesPriv *priv = static_cast<JSDeviceCapabilitiesPriv*>(JSObjectGetPrivate(object));
if (NULL == priv) {
- LogError("Private object not set.");
+ LoggerE("Private object not set.");
return JSValueMakeUndefined(context);
}
Converter convert(context);
if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_BLUETOOTH)) {
+ bool bluetooth = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.bluetooth", &bluetooth) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->bluetooth = bluetooth;
+ } else {
+ LoggerE("get fail bluetooth value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->bluetooth);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_NFC)) {
+ bool nfc = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.nfc", &nfc) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->nfc = nfc;
+ } else {
+ LoggerE("get fail nfc value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->nfc);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_NFC_RESERVED_PUSH)) {
+ bool nfcReservedPush = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.nfc.reserved_push", &nfcReservedPush) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->nfcReservedPush = nfcReservedPush;
+ } else {
+ LoggerE("get fail nfc reserved push value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->nfcReservedPush);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_MULTITOUCHCOUNT)) {
+ int multiTouchCount = 0;
+ if(system_info_get_platform_int("tizen.org/feature/multi_point_touch.point_count", &multiTouchCount) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->multiTouchCount = multiTouchCount;
+ } else {
+ LoggerE("get fail multiTouchCount value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->multiTouchCount);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_INPUTKEYBOARD)) {
+ bool inputKeyboard = false;
+ if(system_info_get_platform_bool("tizen.org/feature/input.keyboard", &inputKeyboard) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->inputKeyboard = inputKeyboard;
+ } else {
+ LoggerE("get fail inputKeyboard value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->inputKeyboard);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_INPUTKEYBOARD_LAYOUT)) {
+ char* inputKeyboardLayout = NULL;
+ if(system_info_get_platform_string("tizen.org/feature/input.keyboard.layout", &inputKeyboardLayout) == SYSTEM_INFO_ERROR_NONE) {
+ if (inputKeyboardLayout) {
+ deviceCapabilitiesInfo->inputKeyboardLayout = true;
+ free(inputKeyboardLayout);
+ } else {
+ deviceCapabilitiesInfo->inputKeyboardLayout = false;
+ }
+ } else {
+ LoggerE("get fail inputKeyboardLayout value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->inputKeyboardLayout);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_WIFI)) {
+ bool wifi = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.wifi", &wifi) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->wifi = wifi;
+ } else {
+ LoggerE("get fail wifi value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->wifi);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_WIFIDIRECT)) {
+ bool wifiDirect = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.wifi.direct", &wifiDirect) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->wifiDirect = wifiDirect;
+ } else {
+ LoggerE("get fail wifiDirect value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->wifiDirect);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_OPENGLES)) {
+ bool opengles = NULL;
+ if(system_info_get_platform_bool("tizen.org/feature/opengles", &opengles) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->opengles = opengles;
+ } else {
+ LoggerE("get fail opengles value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->opengles);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_OPENGLES_TEXTURE_FORMAT)) {
+ bool texture = false;
+ bool data = false;
+ char* textureFormat = NULL;
+ char textureFormatFull[MAXBUFSIZE];
+ textureFormatFull[0] = '\0';
+
+ if (system_info_get_platform_bool("tizen.org/feature/opengles.texture_format.utc", &texture) == SYSTEM_INFO_ERROR_NONE && texture == true) {
+ strcat(textureFormatFull, "utc");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/opengles.texture_format.ptc", &texture) == SYSTEM_INFO_ERROR_NONE && texture == true) {
+ if (data) {
+ strcat(textureFormatFull, " | ");
+ }
+ strcat(textureFormatFull, "ptc");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/opengles.texture_format.etc", &texture) == SYSTEM_INFO_ERROR_NONE && texture == true) {
+ if (data) {
+ strcat(textureFormatFull, " | ");
+ }
+ strcat(textureFormatFull, "etc");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/opengles.texture_format.3dc", &texture) == SYSTEM_INFO_ERROR_NONE && texture == true) {
+ if (data) {
+ strcat(textureFormatFull, " | ");
+ }
+ strcat(textureFormatFull, "3dc");
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/opengles.texture_format.atc", &texture) == SYSTEM_INFO_ERROR_NONE && texture == true) {
+ if (data) {
+ strcat(textureFormatFull, " | ");
+ }
+ strcat(textureFormatFull, "atc");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/opengles.texture_format.pvrtc", &texture) == SYSTEM_INFO_ERROR_NONE && texture == true) {
+ if (data) {
+ strcat(textureFormatFull, " | ");
+ }
+ strcat(textureFormatFull, "pvrtc");
+ }
+
+ textureFormat = strdup(textureFormatFull);
+
+ if (textureFormat == NULL) {
+ LoggerE("get fail openglestextureFormat value");
+ return JSValueMakeUndefined(context);
+ }
+
+ deviceCapabilitiesInfo->openglestextureFormat = textureFormat;
+ free(textureFormat);
+
+ return convert.toJSValueRef(deviceCapabilitiesInfo->openglestextureFormat);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_OPENGLESVERSION1_1)) {
+ bool openglesVersion1_1 = false;
+ if(system_info_get_platform_bool("tizen.org/feature/opengles.version.1_1", &openglesVersion1_1) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->openglesVersion1_1 = openglesVersion1_1;
+ } else {
+ LoggerE("get fail openglesVersion1_1 value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->openglesVersion1_1);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_OPENGLESVERSION2_0)) {
+ bool openglesVersion2_0 = false;
+ if(system_info_get_platform_bool("tizen.org/feature/opengles.version.2_0", &openglesVersion2_0) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->openglesVersion2_0 = openglesVersion2_0;
+ } else {
+ LoggerE("get fail openglesVersion2_0 value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->openglesVersion2_0);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_FMRADIO)) {
+ bool fmRadio = false;
+ if(system_info_get_platform_bool("tizen.org/feature/fmradio", &fmRadio) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->fmRadio = fmRadio;
+ } else {
+ LoggerE("get fail fmRadio value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->fmRadio);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PLATFORMVERSION)) {
AceSecurityStatus status = SYSTEMINFO_CHECK_ACCESS(SYSTEMINFO_FUNCTION_API_GET_CAPABILITIES);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
+ char* platformVersion = NULL;
+ if(system_info_get_platform_string("tizen.org/feature/platform.version", &platformVersion) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->platformVersion = platformVersion;
+ free(platformVersion);
+ } else {
+ LoggerE("get fail platformVersion value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->platformVersion);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PLATFORMNAME)) {
+ char* platformName = NULL;
+ if(system_info_get_platform_string("tizen.org/system/platform.name", &platformName) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->platformName = platformName;
+ free(platformName);
+ } else {
+ LoggerE("get fail platformName value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->platformName);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_WEBAPIVERSION)) {
AceSecurityStatus status = SYSTEMINFO_CHECK_ACCESS(SYSTEMINFO_FUNCTION_API_GET_CAPABILITIES);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
+ char* webApiVersion = NULL;
+ if(system_info_get_platform_string("tizen.org/feature/platform.web.api.version", &webApiVersion) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->webApiVersion = webApiVersion;
+ free(webApiVersion);
+ } else {
+ LoggerE("get fail webApiVersion value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->webApiVersion);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_NATIVEAPIVERSION)) {
AceSecurityStatus status = SYSTEMINFO_CHECK_ACCESS(SYSTEMINFO_FUNCTION_API_GET_CAPABILITIES);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
+ char* nativeApiVersion = NULL;
+ if(system_info_get_platform_string("tizen.org/feature/platform.native.api.version", &nativeApiVersion) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->nativeApiVersion = nativeApiVersion;
+ free(nativeApiVersion);
+ } else {
+ LoggerE("get fail nativeApiVersion value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->nativeApiVersion);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_CAMERAFRONT)) {
+ bool cameraFront = false;
+ if(system_info_get_platform_bool("tizen.org/feature/camera.front", &cameraFront) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->cameraFront = cameraFront;
+ } else {
+ LoggerE("get fail cameraFront value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->cameraFront);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_CAMERA)) {
+ bool camera = false;
+ if(system_info_get_platform_bool("tizen.org/feature/camera", &camera) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->camera = camera;
+ } else {
+ LoggerE("get fail camera value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->camera);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_CAMERAFRONTFLASH)) {
+ bool cameraFrontFlash = false;
+ if(system_info_get_platform_bool("tizen.org/feature/camera.front.flash", &cameraFrontFlash) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->cameraFrontFlash = cameraFrontFlash;
+ } else {
+ LoggerE("get fail cameraFrontFlash value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->cameraFrontFlash);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_CAMERABACK)) {
+ bool cameraBack = false;
+ if(system_info_get_platform_bool("tizen.org/feature/camera.back", &cameraBack) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->cameraBack = cameraBack;
+ } else {
+ LoggerE("get fail cameraBack value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->cameraBack);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_CAMERABACKFLASH)) {
+ bool cameraBackFlash = false;
+ if(system_info_get_platform_bool("tizen.org/feature/camera.back.flash", &cameraBackFlash) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->cameraBackFlash = cameraBackFlash;
+ } else {
+ LoggerE("get fail cameraBackFlash value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->cameraBackFlash);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_LOCATION)) {
+ bool location = false;
+ if(system_info_get_platform_bool("tizen.org/feature/location", &location) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->location = location;
+ } else {
+ LoggerE("get fail location value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->location);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_LOCATIONGPS)) {
+ bool locationGps = false;
+ if(system_info_get_platform_bool("tizen.org/feature/location.gps", &locationGps) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->locationGps = locationGps;
+ } else {
+ LoggerE("get fail locationGps value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->locationGps);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_LOCATIONWPS)) {
+ bool locationWps = false;
+ if(system_info_get_platform_bool("tizen.org/feature/location.wps", &locationWps) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->locationWps = locationWps;
+ } else {
+ LoggerE("get fail locationWps value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->locationWps);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_MICROPHONE)) {
+ bool microphone = false;
+ if(system_info_get_platform_bool("tizen.org/feature/microphone", µphone) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->microphone = microphone;
+ } else {
+ LoggerE("get fail microphone value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->microphone);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_USBHOST)) {
+ bool usbHost = false;
+ if(system_info_get_platform_bool("tizen.org/feature/usb.host", &usbHost) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->usbHost = usbHost;
+ } else {
+ LoggerE("get fail usbHost value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->usbHost);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_USBACCESSORY)) {
+ bool usbAccessory = false;
+ if(system_info_get_platform_bool("tizen.org/feature/usb.accessory", &usbAccessory) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->usbAccessory = usbAccessory;
+ } else {
+ LoggerE("get fail usbAccessory value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->usbAccessory);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SCREENOUTPUTRCA)) {
+ bool screenOutputRca = false;
+ if(system_info_get_platform_bool("tizen.org/feature/screen.output.rca", &screenOutputRca) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->screenOutputRca = screenOutputRca;
+ } else {
+ LoggerE("get fail screenOutputRca value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->screenOutputRca);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SCREENOUTPUTHDMI)) {
+ bool screenOutputHdmi = false;
+ if(system_info_get_platform_bool("tizen.org/feature/screen.output.hdmi", &screenOutputHdmi) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->screenOutputHdmi = screenOutputHdmi;
+ } else {
+ LoggerE("get fail screenOutputHdmi value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->screenOutputHdmi);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PLATFORMCORECPUARCH)) {
+ bool cpuArch = false;
+ bool data = false;
+ char* platformCoreCpuArch = NULL;
+ char platformCoreCpuArchFull[MAXBUFSIZE];
+ platformCoreCpuArchFull[0] = '\0';
+
+ if (system_info_get_platform_bool("tizen.org/feature/platform.core.cpu.arch.armv6", &cpuArch) == SYSTEM_INFO_ERROR_NONE && cpuArch == true) {
+ strcat(platformCoreCpuArchFull, "armv6");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/platform.core.cpu.arch.armv7", &cpuArch) == SYSTEM_INFO_ERROR_NONE && cpuArch == true) {
+ if (data) {
+ strcat(platformCoreCpuArchFull, " | ");
+ }
+ strcat(platformCoreCpuArchFull, "armv7");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/platform.core.cpu.arch.x86", &cpuArch) == SYSTEM_INFO_ERROR_NONE && cpuArch == true) {
+ if (data) {
+ strcat(platformCoreCpuArchFull, " | ");
+ }
+ strcat(platformCoreCpuArchFull, "x86");
+ }
+
+ platformCoreCpuArch = strdup(platformCoreCpuArchFull);
+
+ if (platformCoreCpuArch == NULL) {
+ LoggerE("get fail platformCoreCpuArch value");
+ return JSValueMakeUndefined(context);
+ }
+
+ deviceCapabilitiesInfo->platformCoreCpuArch = platformCoreCpuArch;
+ free(platformCoreCpuArch);
+
return convert.toJSValueRef(deviceCapabilitiesInfo->platformCoreCpuArch);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PLATFORMCOREFPUARCH)) {
+ bool fpuArch = false;
+ bool data = true;
+ char* platformCoreFpuArch = NULL;
+ char platformCoreFpuArchFull[MAXBUFSIZE];
+ platformCoreFpuArchFull[0] = '\0';
+
+ if (system_info_get_platform_bool("tizen.org/feature/platform.core.fpu.arch.sse2", &fpuArch) == SYSTEM_INFO_ERROR_NONE && fpuArch == true) {
+ data = true;
+ strcat(platformCoreFpuArchFull, "sse2");
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/platform.core.fpu.arch.sse3", &fpuArch) == SYSTEM_INFO_ERROR_NONE && fpuArch == true) {
+ if(data) {
+ strcat(platformCoreFpuArchFull, " | ");
+ }
+ strcat(platformCoreFpuArchFull, "sse3");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/platform.core.fpu.arch.ssse3", &fpuArch) == SYSTEM_INFO_ERROR_NONE && fpuArch == true) {
+ if(data) {
+ strcat(platformCoreFpuArchFull, " | ");
+ }
+ strcat(platformCoreFpuArchFull, "ssse3");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/platform.core.fpu.arch.vfpv2", &fpuArch) == SYSTEM_INFO_ERROR_NONE && fpuArch == true) {
+ if(data) {
+ strcat(platformCoreFpuArchFull, " | ");
+ }
+ strcat(platformCoreFpuArchFull, "vfpv2");
+ data = true;
+ }
+ if (system_info_get_platform_bool("tizen.org/feature/platform.core.fpu.arch.vfpv3", &fpuArch) == SYSTEM_INFO_ERROR_NONE && fpuArch == true) {
+ if(data) {
+ strcat(platformCoreFpuArchFull, " | ");
+ }
+ strcat(platformCoreFpuArchFull, "vfpv3");
+ }
+ platformCoreFpuArch = strdup(platformCoreFpuArchFull);
+
+ if (platformCoreFpuArch == NULL) {
+ LoggerE("get fail platformCoreFpuArch value");
+ return JSValueMakeUndefined(context);
+ }
+
+ deviceCapabilitiesInfo->platformCoreCpuArch = platformCoreFpuArch;
+ free(platformCoreFpuArch);
+
return convert.toJSValueRef(deviceCapabilitiesInfo->platformCoreFpuArch);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SIPVOIP)) {
+ bool sipVoip = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sip.voip", &sipVoip) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->sipVoip = sipVoip;
+ } else {
+ LoggerE("get fail sipVoip value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->sipVoip);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_DUID)) {
+ FILE *fp = NULL;
+ char duid[DUID_BUFFER_SIZE] = {0,};
+ fp = fopen("/opt/usr/etc/system_info_cache.ini", "r");
+
+ if(fp == NULL) {
+ LoggerD("fail file open.");
+ return convert.toJSValueRef(deviceCapabilitiesInfo->duid);
+ }
+
+ while(fgets(duid, DUID_BUFFER_SIZE-1, fp)) {
+ if (strncmp(duid, "http://tizen.org/system/duid", DUID_KEY_STRING) == 0) {
+ LoggerD("duid : " << duid);
+ deviceCapabilitiesInfo->duid = duid;
+ break;
+ }
+ }
+ fclose(fp);
return convert.toJSValueRef(deviceCapabilitiesInfo->duid);
- } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SPEECHROCOGNITION)) {
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SPEECH_ROCOGNITION)) {
+ bool speechRecognition = false;
+ if(system_info_get_platform_bool("tizen.org/feature/speech.recognition", &speechRecognition) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->speechRecognition = speechRecognition;
+ } else {
+ LoggerE("get fail speechRecognition value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->speechRecognition);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SPEECH_SYNTHESIS)) {
+ bool speechSynthesis = false;
+ if(system_info_get_platform_bool("tizen.org/feature/speech.synthesis", &speechSynthesis) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->speechSynthesis = speechSynthesis;
+ } else {
+ LoggerE("get fail speechSynthesis value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->speechSynthesis);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_ACCELEROMETER)) {
+ bool accelerometer = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.accelerometer", &accelerometer) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->accelerometer = accelerometer;
+ } else {
+ LoggerE("get fail accelerometer value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->accelerometer);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_ACCELEROMETER_WAKEUP)) {
+ bool accelerometerWakeup = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.accelerometer.wakeup", &accelerometerWakeup) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->accelerometerWakeup = accelerometerWakeup;
+ } else {
+ LoggerE("get fail accelerometerWakeup value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->accelerometerWakeup);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_BAROMETER)) {
+ bool barometer = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.barometer", &barometer) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->barometer = barometer;
+ } else {
+ LoggerE("get fail barometer value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->barometer);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_BAROMETER_WAKEUP)) {
+ bool barometerWakeup = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.barometer.wakeup", &barometerWakeup) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->barometerWakeup = barometerWakeup;
+ } else {
+ LoggerE("get fail barometerWakeup value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->barometerWakeup);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_GYROSCOPE)) {
+ bool gyroscope = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.gyroscope", &gyroscope) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->gyroscope = gyroscope;
+ } else {
+ LoggerE("get fail gyroscope value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->gyroscope);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_GYROSCOPE_WAKEUP)) {
+ bool gyroscopeWakeup = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.gyroscope.wakeup", &gyroscopeWakeup) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->gyroscopeWakeup = gyroscopeWakeup;
+ } else {
+ LoggerE("get fail gyroscopeWakeup value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->gyroscopeWakeup);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_MAGNETOMETER)) {
+ bool magnetometer = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.magnetometer", &magnetometer) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->magnetometer = magnetometer;
+ } else {
+ LoggerE("get fail magnetometer value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->magnetometer);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_MAGNETOMETER_WAKEUP)) {
+ bool magnetometerWakeup = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.magnetometer.wakeup", &magnetometerWakeup) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->magnetometerWakeup = magnetometerWakeup;
+ } else {
+ LoggerE("get fail magnetometerWakeup value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->magnetometerWakeup);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PHOTOMETER)) {
+ bool photometer = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.photometer", &photometer) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->photometer = photometer;
+ } else {
+ LoggerE("get fail photometer value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->photometer);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PHOTOMETER_WAKEUP)) {
+ bool photometerWakeup = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.photometer.wakeup", &photometerWakeup) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->photometerWakeup = photometerWakeup;
+ } else {
+ LoggerE("get fail photometerWakeup value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->photometerWakeup);
} else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PROXIMITY)) {
+ bool proximity = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.proximity", &proximity) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->proximity = proximity;
+ } else {
+ LoggerE("get fail proximity value");
+ return JSValueMakeUndefined(context);
+ }
return convert.toJSValueRef(deviceCapabilitiesInfo->proximity);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PROXIMITY_WAKEUP)) {
+ bool proximityWakeup = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.proximity.wakeup", &proximityWakeup) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->proximityWakeup = proximityWakeup;
+ } else {
+ LoggerE("get fail proximityWakeup value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->proximityWakeup);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_TILTMETER)) {
+ bool tiltmeter = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.tiltmeter", &tiltmeter) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->tiltmeter = tiltmeter;
+ } else {
+ LoggerE("get fail tiltmeter value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->tiltmeter);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_TILTMETER_WAKEUP)) {
+ bool tiltmeterWakeup = false;
+ if(system_info_get_platform_bool("tizen.org/feature/sensor.tiltmeter.wakeup", &tiltmeterWakeup) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->tiltmeterWakeup = tiltmeterWakeup;
+ } else {
+ LoggerE("get fail tiltmeterWakeup value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->tiltmeterWakeup);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_DATA_ENCRYPTION)) {
+ bool dataEncryption = false;
+ if(system_info_get_platform_bool("tizen.org/feature/database.encryption", &dataEncryption) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->dataEncryption = dataEncryption;
+ } else {
+ LoggerE("get fail dataEncryption value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->dataEncryption);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_GRAPHICS_ACCELERATION)) {
+ bool graphicsAcceleration = false;
+ if(system_info_get_platform_bool("tizen.org/feature/graphics.acceleration", &graphicsAcceleration) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->graphicsAcceleration = graphicsAcceleration;
+ } else {
+ LoggerE("get fail graphicsAcceleration value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->graphicsAcceleration);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PUSH)) {
+ bool push = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.push", &push) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->push = push;
+ } else {
+ LoggerE("get fail push value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->push);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_TELEPHONY)) {
+ bool telephony = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.telephony", &telephony) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->telephony = telephony;
+ } else {
+ LoggerE("get fail telephony value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->telephony);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_TELEPHONY_MMS)) {
+ bool telephonyMms = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.telephony.mms", &telephonyMms) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->telephonyMms = telephonyMms;
+ } else {
+ LoggerE("get fail telephonyMms value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->telephonyMms);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_TELEPHONY_SMS)) {
+ bool telephonySms = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.telephony.sms", &telephonySms) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->telephonySms = telephonySms;
+ } else {
+ LoggerE("get fail telephonySms value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->telephonySms);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SCREENSIZE_NORMAL)) {
+ bool screenSizeNormal = false;
+ if(system_info_get_platform_bool("tizen.org/feature/screen.size.normal", &screenSizeNormal) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->screenSizeNormal = screenSizeNormal;
+ } else {
+ LoggerE("get fail screenSizeNormal value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->screenSizeNormal);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SCREENSIZE_480_800)) {
+ bool screenSize480_800 = false;
+ if(system_info_get_platform_bool("tizen.org/feature/screen.size.normal.480.800", &screenSize480_800) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->screenSize480_800 = screenSize480_800;
+ } else {
+ LoggerE("get fail screenSize480_800 value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->screenSize480_800);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SCREENSIZE_720_1280)) {
+ bool screenSize720_1280 = false;
+ if(system_info_get_platform_bool("tizen.org/feature/screen.size.normal.720.1280", &screenSize720_1280) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->screenSize720_1280 = screenSize720_1280;
+ } else {
+ LoggerE("get fail screenSize720_1280 value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->screenSize720_1280);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_AUTO_ROTATION)) {
+ bool autoRotation = false;
+ if(system_info_get_platform_bool("tizen.org/feature/screen.auto_rotation", &autoRotation) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->autoRotation = autoRotation;
+ } else {
+ LoggerE("get fail autoRotation value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->autoRotation);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SHELL_APP_WIDGET)) {
+ bool shellAppWidget = false;
+ if(system_info_get_platform_bool("tizen.org/feature/shell.appwidget", &shellAppWidget) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->shellAppWidget = shellAppWidget;
+ } else {
+ LoggerE("get fail shellAppWidget value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->shellAppWidget);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_VISION_IMAGE_RECOGNITION)) {
+ bool visionImageRecognition = false;
+ if(system_info_get_platform_bool("tizen.org/feature/vision.image_recognition", &visionImageRecognition) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->visionImageRecognition = visionImageRecognition;
+ } else {
+ LoggerE("get fail visionImageRecognition value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->visionImageRecognition);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_VISION_QRCODE_GENERATION)) {
+ bool visionQrcodeGeneration = false;
+ if(system_info_get_platform_bool("tizen.org/feature/vision.qrcode_generation", &visionQrcodeGeneration) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->visionQrcodeGeneration = visionQrcodeGeneration;
+ } else {
+ LoggerE("get fail visionQrcodeGeneration value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->visionQrcodeGeneration);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_VISION_QRCODE_RECOGNITION)) {
+ bool visionQrcodeRecognition = false;
+ if(system_info_get_platform_bool("tizen.org/feature/vision.qrcode_recognition", &visionQrcodeRecognition) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->visionQrcodeRecognition = visionQrcodeRecognition;
+ } else {
+ LoggerE("get fail visionQrcodeRecognition value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->visionQrcodeRecognition);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_VISION_FACE_RECOGNITION)) {
+ bool visionFaceRecognition = false;
+ if(system_info_get_platform_bool("tizen.org/feature/vision.face_recognition", &visionFaceRecognition) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->visionFaceRecognition = visionFaceRecognition;
+ } else {
+ LoggerE("get fail visionFaceRecognition value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->visionFaceRecognition);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_SECURE_ELEMENT)) {
+ bool secureElement = false;
+ if(system_info_get_platform_bool("tizen.org/feature/network.secure_element", &secureElement) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->secureElement = secureElement;
+ } else {
+ LoggerE("get fail secureElement value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->secureElement);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_NATIVE_OSP_COMPATIBLE)) {
+ bool nativeOspCompatible = false;
+ if(system_info_get_platform_bool("tizen.org/feature/platform.native.osp_compatible", &nativeOspCompatible) == SYSTEM_INFO_ERROR_NONE) {
+ deviceCapabilitiesInfo->nativeOspCompatible = nativeOspCompatible;
+ } else {
+ LoggerE("get fail nativeOspCompatible value");
+ return JSValueMakeUndefined(context);
+ }
+ return convert.toJSValueRef(deviceCapabilitiesInfo->nativeOspCompatible);
+ } else if (JSStringIsEqualToUTF8CString(propertyName, DEVICE_CAPABILITIES_PROFILE)) {
+ deviceCapabilitiesInfo->profile = DEVICE_PROFILE;
+ return convert.toJSValueRef(deviceCapabilitiesInfo->profile);
}
}
Catch(Exception)
{
- LogError("Exception: " << _rethrown_exception.GetMessage());
+ LoggerE("Exception: " << _rethrown_exception.GetMessage());
+ JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR);
}
return JSValueMakeUndefined(context);
}
+
}
}