SET(dependents "dlog glib-2.0 gstreamer-1.0 gstreamer-webrtc-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 \
json-glib-1.0 iniparser mm-common mm-display-interface capi-media-tool libtbm libwebsockets \
- cynara-client libsmack libsoup-2.4")
+ cynara-client libsmack capi-system-info libsoup-2.4")
IF(TIZEN_FEATURE_RESOURCE_MANAGER)
SET(dependents "${dependents} mm-resource-manager")
ADD_DEFINITIONS("-DTIZEN_FEATURE_RES_MGR")
return ret; \
} while (0)
+#define RET_ERR_IF_FEATURE_IS_NOT_SUPPORTED(x_feature) \
+do { \
+ int ret = _check_feature(x_feature); \
+ if (ret != WEBRTC_ERROR_NONE) \
+ return ret; \
+} while (0)
+
#define SAFE_FREE(src) { if (src) { free(src); src = NULL; } }
#define SAFE_STR(str) (str) ? str : "null"
int _stop_websocket(webrtc_websocket_s *ws);
int _check_privilege(const char *privilege);
+int _check_feature(const char *feature);
#ifdef __cplusplus
}
Name: capi-media-webrtc
Summary: A WebRTC library in Tizen Native API
-Version: 0.1.96
+Version: 0.1.97
Release: 0
Group: Multimedia/API
License: Apache-2.0
BuildRequires: pkgconfig(libwebsockets)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(libsmack)
+BuildRequires: pkgconfig(capi-system-info)
%if "%{tizen_profile_name}" != "tv"
BuildRequires: pkgconfig(mm-resource-manager)
%endif
#include "webrtc_private.h"
#include <cynara-client.h>
#include <sys/smack.h>
+#include <system_info.h>
int _check_privilege(const char *privilege)
{
cynara_finish(cynara_h);
return ret;
}
+
+int _check_feature(const char *feature)
+{
+ bool supported;
+
+ RET_VAL_IF(feature == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "feature is NULL");
+
+ if (system_info_get_platform_bool(feature, &supported) != SYSTEM_INFO_ERROR_NONE) {
+ LOG_ERROR("failed to system_info_get_platform_bool(), feature[%s]", feature);
+ return WEBRTC_ERROR_INVALID_OPERATION;
+ }
+
+ if (!supported) {
+ LOG_ERROR("feature[%s] is not supported", feature);
+ return WEBRTC_ERROR_NOT_SUPPORTED;
+ }
+
+ LOG_INFO("feature[%s] is supported", feature);
+
+ return WEBRTC_ERROR_NONE;
+}