change doc file 66/56966/1 accepted/tizen/ivi/20160218.024243 accepted/tizen/mobile/20160114.065515 accepted/tizen/tv/20160114.065542 accepted/tizen/wearable/20160114.065615 submit/tizen/20160114.042058 submit/tizen_common/20160218.142243 submit/tizen_ivi/20160217.000000 submit/tizen_ivi/20160217.000004
authorJunkyeong Kim <jk0430.kim@samsung.com>
Thu, 14 Jan 2016 02:41:37 +0000 (11:41 +0900)
committerJunkyeong Kim <jk0430.kim@samsung.com>
Thu, 14 Jan 2016 02:41:49 +0000 (11:41 +0900)
Change-Id: Idb8c6fd00f7fd882249c27f02917545e6d8042dc
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
doc/ui_eom_doc.h

index 5fcd263..422f7f1 100644 (file)
@@ -44,270 +44,16 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *   #include <eom.h>\r
  *\r
  * @section CAPI_UI_EOM_MODULE_OVERVIEW Overview\r
- * The External Output Manager (EOM) is for managing external outputs.\r
+ * The External Output Manager (EOM) is for managing external outputs.\n\r
  * User can get the information of external outputs and control them via\r
- * eom API.\r
+ * eom API.\n\n\r
+ *\r
+ * Features :\n\r
+ *  - Get information.(output ID, type, resolution, physical size etc)\n\r
+ *  - Receive state changing informagtion by callback function. (add, remove, mode change, attribute change)\n\r
+ *  - Use external output device.(set attribute, set external window)\n\r
+ */\r
  *\r
- * @sample code\r
-#include <stdio.h>\r
-#include <gio/gio.h>\r
-#include <eom.h>\r
-#include <Elementary.h>\r
-#include <Ecore_X.h>\r
-\r
-typedef struct\r
-{\r
-    Evas_Object *external_window;\r
-\r
-    int hdmi_output_id;\r
-    int virtual_output_id;\r
-} SampleInfo;\r
-\r
-static void\r
-set_external_rect_bg_window (Evas_Object* win)\r
-{\r
-    Evas_Object *bg, *rect;\r
-\r
-    bg = elm_bg_add (win);\r
-    elm_win_resize_object_add (win, bg);\r
-    evas_object_size_hint_weight_set (bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
-    evas_object_show (bg);\r
-\r
-    rect = evas_object_rectangle_add (evas_object_evas_get(win));\r
-    evas_object_color_set (rect, 0, 0, 0, 0);\r
-    evas_object_render_op_set (rect, EVAS_RENDER_COPY);\r
-\r
-    elm_win_resize_object_add (win, rect);\r
-    evas_object_size_hint_weight_set (rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
-    evas_object_show (rect);\r
-    evas_object_show (win);\r
-}\r
-\r
-static void\r
-sample_notify_cb_output_add (eom_output_id output_id, void *user_data)\r
-{\r
-    SampleInfo *info = (SampleInfo*)user_data;\r
-\r
-    if (info->hdmi_output_id != output_id)\r
-    {\r
-        printf ("OUTPUT ADDED. SKIP. my output ID is %d\n", info->hdmi_output_id);\r
-        return;\r
-    }\r
-\r
-    printf ("output(%d) connected\n", output_id);\r
-\r
-    if (!info->external_window)\r
-    {\r
-        info->external_window = elm_win_add(NULL, "external_win", ELM_WIN_BASIC);\r
-        if (eom_set_output_window(info->hdmi_output_id, info->external_window) == EOM_ERROR_NONE)\r
-        {\r
-            set_external_rect_bg_window(info->external_window);\r
-        }\r
-        else\r
-        {\r
-            evas_object_del (info->external_window);\r
-            info->external_window = NULL;\r
-        }\r
-    }\r
-}\r
-\r
-static void\r
-sample_notify_cb_output_remove (eom_output_id output_id, void *user_data)\r
-{\r
-    SampleInfo *info = (SampleInfo*)user_data;\r
-\r
-    if (info->hdmi_output_id != output_id)\r
-    {\r
-        printf ("OUTPUT REMOVED. SKIP. my output ID is %d\n", info->hdmi_output_id);\r
-        return;\r
-    }\r
-\r
-    printf ("output(%d) disconnected\n", output_id);\r
-\r
-    if (info->external_window)\r
-    {\r
-        evas_object_del (info->external_window);\r
-        info->external_window = NULL;\r
-    }\r
-}\r
-\r
-static void\r
-sample_notify_cb_mode_changed (eom_output_id output_id, void *user_data)\r
-{\r
-    SampleInfo *info = (SampleInfo*)user_data;\r
-    eom_output_mode_e mode = EOM_OUTPUT_MODE_NONE;\r
-\r
-    if (info->hdmi_output_id != output_id)\r
-    {\r
-        printf ("MODE CHANGED. SKIP. my output ID is %d\n", info->hdmi_output_id);\r
-        return;\r
-    }\r
-\r
-    eom_get_output_mode(output_id, &mode);\r
-    printf ("output(%d) mode changed(%d)\n", output_id, mode);\r
-}\r
-\r
-static void\r
-sample_notify_cb_attribute_changed (eom_output_id output_id, void *user_data)\r
-{\r
-    SampleInfo *info = (SampleInfo*)user_data;\r
-    eom_output_attribute_e attribute = EOM_OUTPUT_ATTRIBUTE_NONE;\r
-    eom_output_attribute_state_e state = EOM_OUTPUT_ATTRIBUTE_STATE_NONE;\r
-\r
-    if (info->hdmi_output_id != output_id)\r
-    {\r
-        printf ("ATTR CHANGED. SKIP. my output ID is %d\n", info->hdmi_output_id);\r
-        return;\r
-    }\r
-\r
-    eom_get_output_attribute(output_id, &attribute);\r
-    eom_get_output_attribute_state(output_id, &state);\r
-\r
-    printf ("output(%d) attribute changed(%d, %d)\n", output_id, attribute, state);\r
-    if (state == EOM_OUTPUT_ATTRIBUTE_STATE_ACTIVE)\r
-    {\r
-        //active : display image to external window\n");\r
-    }\r
-    else if (state == EOM_OUTPUT_ATTRIBUTE_STATE_INACTIVE)\r
-    {\r
-        //inactive : stop displaying image to external window and destroy external window\r
-        if (info->external_window)\r
-        {\r
-            sample_destroy_window (info->external_window);\r
-            info->external_window = NULL;\r
-        }\r
-    }\r
-    else if (state == EOM_OUTPUT_ATTRIBUTE_STATE_LOST)\r
-    {\r
-        //lost : stop displaying image to external window, destroy external window and unset callbacks\r
-        if (info->external_window)\r
-        {\r
-            sample_destroy_window (info->external_window);\r
-            info->external_window = NULL;\r
-        }\r
-\r
-        eom_unset_output_added_cb(sample_notify_cb_output_add);\r
-        eom_unset_output_removed_cb(sample_notify_cb_output_remove);\r
-        eom_unset_mode_changed_cb(sample_notify_cb_mode_changed);\r
-        eom_unset_attribute_changed_cb(sample_notify_cb_attribute_changed);\r
-\r
-        eom_deinit ();\r
-    }\r
-}\r
-\r
-int\r
-sample_get_output_id (const char *output_name)\r
-{\r
-    eom_output_id *output_ids = NULL;\r
-    eom_output_id output_id = 0;\r
-    eom_output_type_e output_type = EOM_OUTPUT_TYPE_UNKNOWN;\r
-    int id_cnt = 0;\r
-    int i;\r
-\r
-    // get output_ids\r
-    output_ids = eom_get_eom_output_ids(&id_cnt);\r
-    if (id_cnt == 0)\r
-    {\r
-        printf ("no external outputs supported\n");\r
-        return 0;\r
-    }\r
-\r
-    // find output ids interested\r
-    for (i = 0; i < id_cnt; i++)\r
-    {\r
-        eom_get_output_type(output_ids[i], &output_type);\r
-        if (!strncmp(output_name, "HDMI", 4))\r
-        {\r
-            if (output_type == EOM_OUTPUT_TYPE_HDMIA || output_type == EOM_OUTPUT_TYPE_HDMIB)\r
-            {\r
-                output_id = output_ids[i];\r
-                break;\r
-            }\r
-        }\r
-        else if (!strncmp(output_name, "Virtual", 7))\r
-        {\r
-            if (output_type == EOM_OUTPUT_TYPE_VIRTUAL)\r
-            {\r
-                output_id = output_ids[i];\r
-                break;\r
-            }\r
-        }\r
-    }\r
-\r
-    if (output_ids)\r
-        free (output_ids);\r
-\r
-    return output_id;\r
-}\r
-\r
-int\r
-elm_main(int argc, char **argv)\r
-{\r
-    SampleInfo *info;\r
-    eom_error_e ret;\r
-    eom_output_mode_e output_mode = EOM_OUTPUT_MODE_NONE;\r
-    memset (info, 0x00, sizeof(SampleInfo));\r
-\r
-    if (eom_init () != EOM_ERROR_NONE)\r
-        return 0;\r
-\r
-    // get output id\r
-    info->hdmi_output_id = sample_get_output_id ("HDMI");\r
-    if (info->hdmi_output_id == 0)\r
-    {\r
-        printf ("error : HDMI output id is NULL.\n");\r
-        eom_deinit ();\r
-        return 0;\r
-    }\r
-    ret = eom_set_output_attribute(info->hdmi_output_id, EOM_OUTPUT_ATTRIBUTE_NORMAL);\r
-    if (ret != EOM_ERROR_NONE)\r
-    {\r
-        printf ("Set attribute fail. Cannot use external output\n");\r
-        eom_deinit ();\r
-        return 0;\r
-    }\r
-\r
-    if (ret == EOM_ERROR_NONE)\r
-    {\r
-        eom_get_output_mode(info->hdmi_output_id, &output_mode);\r
-        if (output_mode != EOM_OUTPUT_MODE_NONE)\r
-        {\r
-            //create external window(info->external_window)\r
-            info->external_window = elm_win_add(NULL, "external_win", ELM_WIN_BASIC);\r
-            if (eom_set_output_window(info->hdmi_output_id, info->external_window) == EOM_ERROR_NONE)\r
-            {\r
-                set_external_rect_bg_window(info->external_window);\r
-            }\r
-            else\r
-            {\r
-                evas_object_del (info->external_window);\r
-                info->external_window = NULL;\r
-            }\r
-        }\r
-\r
-        eom_set_output_added_cb(sample_notify_cb_output_add, info);\r
-        eom_set_output_removed_cb(sample_notify_cb_output_remove, info);\r
-        eom_set_mode_changed_cb(sample_notify_cb_mode_changed, info);\r
-        eom_set_attribute_changed_cb(sample_notify_cb_attribute_changed, info);\r
-    }\r
-\r
-    elm_run();\r
-\r
-    if (ret == EOM_ERROR_NONE)\r
-    {\r
-        eom_unset_output_added_cb(sample_notify_cb_output_add);\r
-        eom_unset_output_removed_cb(sample_notify_cb_output_remove);\r
-        eom_unset_mode_changed_cb(sample_notify_cb_mode_changed);\r
-        eom_unset_attribute_changed_cb(sample_notify_cb_attribute_changed);\r
-\r
-        eom_deinit ();\r
-    }\r
-\r
-    elm_shutdown();\r
-\r
-    return 0;\r
-}\r
- * @endcode\r
  */\r
 \r
 #endif /* __UI_EOM_DOC_H__ */\r