From: Jin Yoon Date: Thu, 28 Mar 2019 02:42:01 +0000 (+0900) Subject: Remove resources to control a camera X-Git-Url: http://review.tizen.org/git/?p=apps%2Fnative%2Fposition-finder-server.git;a=commitdiff_plain;h=410332eb4ad5b7ae52f597087a5d0fd1327f0e5a Remove resources to control a camera Profile : IoT Headless(that doesn't contain camera resources) Change-Id: Id8c2aeee4f5cbf8730ba0c47ed97331038ef6b2a --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 49fd759..249fbd0 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,6 @@ pkg_check_modules(APP_PKGS REQUIRED json-glib-1.0 capi-system-info capi-network-connection - capi-media-camera ) ADD_DEFINITIONS(-DCBOR_FILE_IN_RES="${INSTALL_RESDIR}/${CBOR_FILE}") @@ -62,7 +61,6 @@ ADD_EXECUTABLE(${PROJECT_NAME} ${PROJECT_ROOT_DIR}/src/resource/resource_gas_detection_sensor.c ${PROJECT_ROOT_DIR}/src/resource/resource_sound_level_sensor.c ${PROJECT_ROOT_DIR}/src/resource/resource_adc_mcp3008.c - ${PROJECT_ROOT_DIR}/src/resource/resource_camera.c ) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm) diff --git a/inc/resource.h b/inc/resource.h index f3ffe3c..783fd8f 100755 --- a/inc/resource.h +++ b/inc/resource.h @@ -38,6 +38,5 @@ #include "resource/resource_tilt_sensor.h" #include "resource/resource_gas_detection_sensor.h" #include "resource/resource_sound_level_sensor.h" -#include "resource/resource_camera.h" #endif /* __POSITION_FINDER_RESOURCE_H__ */ diff --git a/inc/resource/resource_camera.h b/inc/resource/resource_camera.h deleted file mode 100644 index 545e9b9..0000000 --- a/inc/resource/resource_camera.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -#define MAX_IMAGE_FILE_LEN 256 -#define DEFAULT_FILE_PATH "/home/owner/media" - -typedef void (*capture_completed_cb)(const void *image, unsigned int size, void *user_data); - -int resource_capture_camera(capture_completed_cb capture_completed_cb, void *data); -void resource_close_camera(void); diff --git a/inc/resource/resource_infrared_motion_sensor.h b/inc/resource/resource_infrared_motion_sensor.h index 65bdda7..10470d5 100644 --- a/inc/resource/resource_infrared_motion_sensor.h +++ b/inc/resource/resource_infrared_motion_sensor.h @@ -6,7 +6,7 @@ * Eunyoung Lee * Junkyu Han * - * Licensed under the Flora License, Version 1.1 (the License); +* Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * diff --git a/packaging/org.tizen.position-finder-server.spec b/packaging/org.tizen.position-finder-server.spec index 8f50c9b..dd4e98a 100644 --- a/packaging/org.tizen.position-finder-server.spec +++ b/packaging/org.tizen.position-finder-server.spec @@ -28,7 +28,6 @@ BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(capi-system-info) BuildRequires: pkgconfig(capi-network-connection) -BuildRequires: pkgconfig(capi-media-camera) %description Server for Position Finder diff --git a/src/controller.c b/src/controller.c index 75b458f..e0351d3 100644 --- a/src/controller.c +++ b/src/controller.c @@ -27,80 +27,31 @@ #include "log.h" #include "resource.h" -#include "connectivity.h" -#include "controller.h" -#include "controller_util.h" -#include "webutil.h" -#define CONNECTIVITY_KEY "opened" #define SENSORING_TIME_INTERVAL 5.0f -#define CAMERA_TIME_INTERVAL 2 -#define TEST_CAMERA_SAVE 0 -#define CAMERA_ENABLED 0 typedef struct app_data_s { Ecore_Timer *getter_timer; - connectivity_resource_s *resource_info; } app_data; -static void __resource_camera_capture_completed_cb(const void *image, unsigned int size, void *user_data) -{ - /* TODO */ - const char *path = NULL; - const char *url = NULL; - - controller_util_get_path(&path); - - controller_util_get_image_address(&url); - - web_util_noti_post_image_data(url, path, image, size); - -#if TEST_CAMERA_SAVE - FILE *fp = NULL; - char *data_path = NULL; - char file[256]; - - data_path = app_get_data_path(); - - snprintf(file, sizeof(file), "%sjjoggoba.jpg", data_path); - free(data_path); - _D("File : %s", file); - - fp = fopen(file, "w"); - if (!fp) { - _E("Failed to open file: %s", file); - return; - } - - if (fwrite(image, size, 1, fp) != 1) { - _E("Failed to write image to file"); - return; - } - - fclose(fp); -#endif -} - static Eina_Bool control_sensors_cb(void *data) { - app_data *ad = data; - int value = 1; + uint32_t value = 0; int ret = 0; -#if CAMERA_ENABLED - static unsigned int count = 0; - if (count % CAMERA_TIME_INTERVAL == 0) { - ret = resource_capture_camera(__resource_camera_capture_completed_cb, NULL); - if (ret < 0) - _E("Failed to capture camera"); + ret = resource_read_infrared_motion_sensor(12, &value); + if (ret < 0) { + _D("Cannot sense from your sensor"); + return ECORE_CALLBACK_RENEW; } - count++; -#endif + _D("PIR Value : %d", value); - /* This is an example, get value from sensors first */ - if (connectivity_notify_int(ad->resource_info, "Motion", value) == -1) - _E("Cannot notify message"); + ret = resource_write_led(26, value); + if (ret < 0) { + _D("Cannot write a value to your LED"); + return ECORE_CALLBACK_RENEW; + } return ECORE_CALLBACK_RENEW; } @@ -108,28 +59,6 @@ static Eina_Bool control_sensors_cb(void *data) static bool service_app_create(void *data) { app_data *ad = data; - int ret = -1; - const char *path = NULL; - - /** - * No modification required!!! - * Access only when modifying internal functions. - */ - controller_init_internal_functions(); - - /** - * Create a connectivity resource and registers the resource in server. - */ - connectivity_set_protocol(CONNECTIVITY_PROTOCOL_HTTP); - - controller_util_get_path(&path); - if (path == NULL) { - _E("Failed to get path"); - return false; - } - - ret = connectivity_set_resource(path, "org.tizen.door", &ad->resource_info); - if (ret == -1) _E("Cannot broadcast resource"); /** * Creates a timer to call the given function in the given period of time. @@ -151,18 +80,6 @@ static void service_app_terminate(void *data) if (ad->getter_timer) ecore_timer_del(ad->getter_timer); - - /** - * Releases the resource about connectivity. - */ - connectivity_unset_resource(ad->resource_info); - - /** - * No modification required!!! - * Access only when modifying internal functions. - */ - controller_fini_internal_functions(); - free(ad); } diff --git a/src/resource/resource_camera.c b/src/resource/resource_camera.c deleted file mode 100644 index 64ae611..0000000 --- a/src/resource/resource_camera.c +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Contact: Jin Yoon - * Geunsun Lee - * Eunyoung Lee - * Junkyu Han - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include - -#include "log.h" -#include "resource/resource_camera.h" - -#define RESOLUTION_W 320 -#define RESOLUTION_H 240 - -static int __init(void); -static void __completed_cb(void *user_data); -static bool __resolution_list_cb(int width, int height, void *user_data); -static void __capturing_cb(camera_image_data_s *image, camera_image_data_s *postview, - camera_image_data_s *thumbnail, void *user_data); - -struct __camera_data { - camera_h cam_handle; - int resolution_w; - int resolution_h; - void *captured_file; - unsigned int image_size; - capture_completed_cb completed_cb; - void *completed_cb_data; -}; - -static struct __camera_data *camera_data = NULL; - -int resource_capture_camera(capture_completed_cb capture_completed, void *user_data) -{ - camera_state_e state; - int ret = CAMERA_ERROR_NONE; - - if (camera_data == NULL) { - _I("Camera is not initialized"); - ret = __init(); - if (ret < 0) { - _E("Failed to initialize camera"); - return -1; - } - } - - ret = camera_get_state(camera_data->cam_handle, &state); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to get camera state"); - return -1; - } - - if (state >= CAMERA_STATE_CAPTURING) { - _D("Camera is now capturing"); - return 0; - } - - if (state != CAMERA_STATE_PREVIEW) { - _I("Preview is not started"); - ret = camera_start_preview(camera_data->cam_handle); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to start preview"); - return -1; - } - } - - ret = camera_start_capture(camera_data->cam_handle, __capturing_cb, __completed_cb, camera_data); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to start capturing"); - return -1; - } - - camera_data->completed_cb = capture_completed; - camera_data->completed_cb_data = user_data; - - return 0; -} - -void resource_close_camera(void) -{ - if (camera_data == NULL) - return; - - camera_stop_preview(camera_data->cam_handle); - - camera_destroy(camera_data->cam_handle); - camera_data->cam_handle = NULL; - - free(camera_data); - camera_data = NULL; -} - -static void __capturing_cb(camera_image_data_s *image, camera_image_data_s *postview, - camera_image_data_s *thumbnail, void *user_data) -{ - struct __camera_data *camera_data = user_data; - if (image == NULL) { - _E("Image is NULL"); - return; - } - - camera_data->captured_file = malloc(image->size); - if (camera_data->captured_file == NULL) - return; - - _D("Now is on Capturing: Image size[%d x %d]", image->width, image->height); - - memcpy(camera_data->captured_file, image->data, image->size); - camera_data->image_size = image->size; - - return; -} - -static void __completed_cb(void *user_data) -{ - struct __camera_data *camera_data = user_data; - int ret = CAMERA_ERROR_NONE; - - if (camera_data->completed_cb) - camera_data->completed_cb(camera_data->captured_file, camera_data->image_size, camera_data->completed_cb_data); - - free(camera_data->captured_file); - camera_data->captured_file = NULL; - - if (!camera_data->cam_handle) { - _E("Camera is NULL"); - return; - } - _D("Capture is completed"); - - ret = camera_start_preview(camera_data->cam_handle); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to start preview"); - return; - } - - ret = camera_stop_preview(camera_data->cam_handle); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to stop preview"); - return; - } - - return; -} - -static bool __resolution_list_cb(int width, int height, void *user_data) -{ - _D("Supported resolution - Width[%d], Height[%d]", width, height); - - if (width > camera_data->resolution_w && width <= RESOLUTION_W && - height > camera_data->resolution_h && height <= RESOLUTION_H) { - camera_data->resolution_w = width; - camera_data->resolution_h = height; - } - _D("Fixed Resolution is Width[%d], Height[%d]", camera_data->resolution_w, camera_data->resolution_h); - - return true; -} - -static int __init(void) -{ - int ret = CAMERA_ERROR_NONE; - - camera_data = malloc(sizeof(struct __camera_data)); - if (camera_data == NULL) { - _E("Failed to allocate Camera data"); - return -1; - } - memset(camera_data, 0, sizeof(struct __camera_data)); - - ret = camera_create(CAMERA_DEVICE_CAMERA0, &(camera_data->cam_handle)); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to create camera"); - goto ERROR; - } - - ret = camera_foreach_supported_capture_resolution(camera_data->cam_handle, __resolution_list_cb, NULL); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to foreach supported capture resolution"); - goto ERROR; - } - - ret = camera_set_preview_resolution(camera_data->cam_handle, camera_data->resolution_w, camera_data->resolution_h); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to set preview resolution"); - goto ERROR; - } - - ret = camera_set_capture_resolution(camera_data->cam_handle, camera_data->resolution_w, camera_data->resolution_h); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to set capture resolution"); - goto ERROR; - } - - ret = camera_set_capture_format(camera_data->cam_handle, CAMERA_PIXEL_FORMAT_JPEG); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to set capture resolution"); - goto ERROR; - } - - ret = camera_start_preview(camera_data->cam_handle); - if (ret != CAMERA_ERROR_NONE) { - _E("Failed to start preview[%d]", ret); - goto ERROR; - } - - return 0; - -ERROR: - camera_destroy(camera_data->cam_handle); - free(camera_data); - return -1; -} -