#include "e_comp_canvas_intern.h"
#include "e_comp_screen_intern.h"
#include "e_comp_intern.h"
+#include "e_output_intern.h"
static Eina_List *handlers;
static Eina_Bool _ev_freeze = EINA_FALSE;
#include "e_input_intern.h"
#include "e_error_intern.h"
#include "e_pointer_intern.h"
+#include "e_output_intern.h"
#include "Eeze.h"
#include <tizen-extension-server-protocol.h>
#include "e.h"
#include "e_comp_wl_screenshooter_intern.h"
#include "e_privilege_intern.h"
+#include "e_output_intern.h"
#include <wayland-server.h>
#include <screenshooter-server-protocol.h>
#include "e_utils_intern.h"
#include "e_comp_screen_intern.h"
#include "e_comp_wl_subsurface_intern.h"
+#include "e_output_intern.h"
#include <libds-tizen/screen.h>
#endif
#include "e.h"
+#include "e_output_intern.h"
+
#include <tizen-dpms-server-protocol.h>
typedef enum _E_Dpms_Mode
#include "e_xdg_shell_v6_intern.h"
#include "e_comp_screen_intern.h"
#include "e_comp_wl_subsurface_intern.h"
+#include "e_output_intern.h"
#include <xdg-shell-unstable-v5-server-protocol.h>
#include <eom-server-protocol.h>
#include "e_comp_screen_intern.h"
#include "e_comp_intern.h"
#include "services/e_service_quickpanel.h"
+#include "e_output_intern.h"
#include <wayland-tbm-server.h>
#include "e_comp_wl_tizen_hwc_intern.h"
#include "e_pixmap_intern.h"
#include "e_presentation_time_intern.h"
+#include "e_output_intern.h"
# include <Evas_Engine_GL_Tbm.h>
# include <Evas_Engine_Software_Tbm.h>
#include "e_presentation_time_intern.h"
#include "e_policy_intern.h"
#include "e_policy_wl_intern.h"
+#include "e_output_intern.h"
#include <tbm_bufmgr.h>
#include <tbm_surface.h>
#include "e_info_shared_types.h"
#include "e_input_private.h"
#include "e_comp_screen_intern.h"
+#include "e_output_intern.h"
#include <linux/uinput.h>
#include "e_input_intern.h"
#include "e_input_private.h"
#include "e_comp_screen_intern.h"
+#include "e_output_intern.h"
/* e_input_device private variable */
static Eina_List *einput_devices;
#include "e_input_event.h"
#include "e_devicemgr_intern.h"
#include "e_comp_screen_intern.h"
+#include "e_output_intern.h"
#include <glib.h>
#include "e.h"
+#include "e_output_intern.h"
#include "e_client_intern.h"
#include "e_utils_intern.h"
#include "e_comp_screen_intern.h"
#include <tbm_surface.h>
+#define OUTPUT_NAME_LEN 64
+
typedef struct _E_Output E_Output;
typedef struct _E_Output_Mode E_Output_Mode;
+
+typedef void (*E_Output_Capture_Cb) (E_Output *output, tbm_surface_h surface, void *user_data);
+
typedef enum _E_Output_Dpms
{
E_OUTPUT_DPMS_ON,
E_OUTPUT_DISPLAY_MODE_PRESENTATION,
} E_Output_Display_Mode;
-typedef struct _E_Output_Hook E_Output_Hook;
-typedef enum _E_Output_Hook_Point
-{
- E_OUTPUT_HOOK_DPMS_CHANGE,
- E_OUTPUT_HOOK_CONNECT_STATUS_CHANGE,
- E_OUTPUT_HOOK_MODE_CHANGE,
- E_OUTPUT_HOOK_ADD,
- E_OUTPUT_HOOK_REMOVE,
- E_OUTPUT_HOOK_LAST
-} E_Output_Hook_Point;
-typedef void (*E_Output_Hook_Cb) (void *data, E_Output *output);
-
-typedef struct _E_Output_Intercept_Hook E_Output_Intercept_Hook;
-typedef enum _E_Output_Intercept_Hook_Point
-{
- E_OUTPUT_INTERCEPT_HOOK_DPMS_ON,
- E_OUTPUT_INTERCEPT_HOOK_DPMS_STANDBY,
- E_OUTPUT_INTERCEPT_HOOK_DPMS_SUSPEND,
- E_OUTPUT_INTERCEPT_HOOK_DPMS_OFF,
- E_OUTPUT_INTERCEPT_HOOK_LAST
-} E_Output_Intercept_Hook_Point;
-typedef Eina_Bool (*E_Output_Intercept_Hook_Cb) (void *data, E_Output *output);
-
-typedef void (*E_Output_Capture_Cb) (E_Output *output, tbm_surface_h surface, void *user_data);
#else
#ifndef E_OUTPUT_H
#define E_OUTPUT_H
-#define E_OUTPUT_TYPE (int)0xE0b11002
-
-#include "e_comp_screen.h"
-
-#define OUTPUT_NAME_LEN 64
-
struct _E_Output_Mode
{
int w, h; // resolution width and height
Eina_Bool fake_config;
};
-struct _E_Output_Hook
-{
- EINA_INLIST;
- E_Output_Hook_Point hookpoint;
- E_Output_Hook_Cb func;
- void *data;
- unsigned char delete_me : 1;
-};
-
-struct _E_Output_Intercept_Hook
-{
- EINA_INLIST;
- E_Output_Intercept_Hook_Point hookpoint;
- E_Output_Intercept_Hook_Cb func;
- void *data;
- unsigned char delete_me : 1;
-};
-
/*brief The output prop value union */
typedef union {
void *ptr;
output_prop_value_type type;
} output_prop;
-EINTERN Eina_Bool e_output_init(void);
-EINTERN void e_output_shutdown(void);
-EINTERN E_Output * e_output_new(E_Comp_Screen *e_comp_screen, int index);
-EINTERN void e_output_del(E_Output *output);
-EINTERN Eina_Bool e_output_rotate(E_Output *output, int rotate);
-EINTERN Eina_Bool e_output_update(E_Output *output);
-EINTERN Eina_Bool e_output_mode_apply(E_Output *output, E_Output_Mode *mode);
-EINTERN Eina_Bool e_output_commit(E_Output *output);
-EINTERN Eina_Bool e_output_render(E_Output *output);
-EINTERN Eina_Bool e_output_hwc_setup(E_Output *output);
-EINTERN E_Output_Mode * e_output_best_mode_find(E_Output *output);
-EINTERN Eina_List * e_output_mode_list_get(E_Output *output);
-EINTERN E_Output_Mode * e_output_current_mode_get(E_Output *output);
-EINTERN Eina_Bool e_output_connected(E_Output *output);
-EINTERN Eina_Bool e_output_dpms_set(E_Output *output, E_OUTPUT_DPMS val);
-EINTERN E_OUTPUT_DPMS e_output_dpms_get(E_Output *output);
-EINTERN Eina_Bool e_output_dpms_async_check(E_Output *output);
-EINTERN void e_output_size_get(E_Output *output, int *w, int *h);
-EINTERN void e_output_phys_size_get(E_Output *output, int *phys_w, int *phys_h);
-EINTERN E_Plane * e_output_default_fb_target_get(E_Output *output);
-EINTERN Eina_Bool e_output_fake_config_set(E_Output *output, int w, int h);
-EINTERN Eina_Bool e_output_zoom_set(E_Output *output, double zoomx, double zoomy, int cx, int cy);
-EINTERN Eina_Bool e_output_zoom_get(E_Output *output, double *zoomx, double *zoomy, int *cx, int *cy);
-EINTERN void e_output_zoom_unset(E_Output *output);
-EINTERN Eina_Bool e_output_capture(E_Output *output, tbm_surface_h surface, Eina_Bool auto_rotate, Eina_Bool sync, E_Output_Capture_Cb func, void *data);
-EINTERN Eina_Bool e_output_stream_capture_queue(E_Output *output, tbm_surface_h surface, E_Output_Capture_Cb func, void *data);
-EINTERN Eina_Bool e_output_stream_capture_dequeue(E_Output *output, tbm_surface_h surface);
-EINTERN Eina_Bool e_output_stream_capture_start(E_Output *output);
-EINTERN void e_output_stream_capture_stop(E_Output *output);
-EINTERN void e_output_stream_capture_autorotate(E_Output *output, Eina_Bool auto_rotate);
-EINTERN Eina_Bool e_output_stream_capture_mask_image_file_set(E_Output *output, const char *file);
-EINTERN Eina_Bool e_output_stream_capture_mask_image_geometry_set(E_Output *output, int x, int y, int w, int h);
-EINTERN const char * e_output_output_id_get(E_Output *output);
-
-EINTERN Eina_Bool e_output_external_mode_change(E_Output *output, E_Output_Mode *mode);
-EINTERN Eina_Bool e_output_mirror_set(E_Output *output, E_Output *src_output);
-EINTERN void e_output_mirror_unset(E_Output *output);
-EINTERN Eina_Bool e_output_presentation_update(E_Output *output, E_Client *ec);
-EINTERN void e_output_presentation_unset(E_Output *output);
-EINTERN Eina_Bool e_output_presentation_ec_set(E_Output *output, E_Client *ec);
-EINTERN E_Client * e_output_presentation_ec_get(E_Output *output);
-
-EINTERN E_Output_Display_Mode e_output_display_mode_get(E_Output *output);
-
-EINTERN void e_output_norender_push(E_Output *output);
-EINTERN void e_output_norender_pop(E_Output *output);
-EINTERN int e_output_norender_get(E_Output *output);
-
E_API E_Output * e_output_find(const char *id);
-E_API E_Output * e_output_find_by_index(int index);
+E_API E_Output * e_output_find_by_index(int index);
E_API const Eina_List * e_output_planes_get(E_Output *output);
-EINTERN void e_output_util_planes_print(void);
-EINTERN Eina_Bool e_output_is_fb_composing(E_Output *output);
-EINTERN Eina_Bool e_output_is_fb_full_compositing(E_Output *output);
-EINTERN E_Plane * e_output_fb_target_get(E_Output *output);
E_API E_Plane * e_output_plane_get_by_zpos(E_Output *output, int zpos);
-EINTERN E_Output_Hook * e_output_hook_add(E_Output_Hook_Point hookpoint, E_Output_Hook_Cb func, const void *data);
-EINTERN void e_output_hook_del(E_Output_Hook *ch);
-EINTERN E_Output_Intercept_Hook * e_output_intercept_hook_add(E_Output_Intercept_Hook_Point hookpoint, E_Output_Intercept_Hook_Cb func, const void *data);
-EINTERN void e_output_intercept_hook_del(E_Output_Intercept_Hook *ch);
-EINTERN void e_output_zoom_rotating_check(E_Output *output);
E_API Eina_Bool e_output_available_properties_get(E_Output *output, const output_prop **props, int *count);
E_API Eina_Bool e_output_property_get(E_Output *output, unsigned int id, output_prop_value *value);
--- /dev/null
+#ifndef E_OUTPUT_INTERN_H
+#define E_OUTPUT_INTERN_H
+
+#define E_OUTPUT_TYPE (int)0xE0b11002
+
+#include <tbm_surface.h>
+
+typedef struct _E_Output_Hook E_Output_Hook;
+typedef struct _E_Output_Intercept_Hook E_Output_Intercept_Hook;
+
+typedef void (*E_Output_Hook_Cb) (void *data, E_Output *output);
+typedef Eina_Bool (*E_Output_Intercept_Hook_Cb) (void *data, E_Output *output);
+
+typedef enum _E_Output_Hook_Point
+{
+ E_OUTPUT_HOOK_DPMS_CHANGE,
+ E_OUTPUT_HOOK_CONNECT_STATUS_CHANGE,
+ E_OUTPUT_HOOK_MODE_CHANGE,
+ E_OUTPUT_HOOK_ADD,
+ E_OUTPUT_HOOK_REMOVE,
+ E_OUTPUT_HOOK_LAST
+} E_Output_Hook_Point;
+
+typedef enum _E_Output_Intercept_Hook_Point
+{
+ E_OUTPUT_INTERCEPT_HOOK_DPMS_ON,
+ E_OUTPUT_INTERCEPT_HOOK_DPMS_STANDBY,
+ E_OUTPUT_INTERCEPT_HOOK_DPMS_SUSPEND,
+ E_OUTPUT_INTERCEPT_HOOK_DPMS_OFF,
+ E_OUTPUT_INTERCEPT_HOOK_LAST
+} E_Output_Intercept_Hook_Point;
+
+struct _E_Output_Hook
+{
+ EINA_INLIST;
+ E_Output_Hook_Point hookpoint;
+ E_Output_Hook_Cb func;
+ void *data;
+ unsigned char delete_me : 1;
+};
+
+struct _E_Output_Intercept_Hook
+{
+ EINA_INLIST;
+ E_Output_Intercept_Hook_Point hookpoint;
+ E_Output_Intercept_Hook_Cb func;
+ void *data;
+ unsigned char delete_me : 1;
+};
+
+EINTERN Eina_Bool e_output_init(void);
+EINTERN void e_output_shutdown(void);
+EINTERN E_Output * e_output_new(E_Comp_Screen *e_comp_screen, int index);
+EINTERN void e_output_del(E_Output *output);
+EINTERN Eina_Bool e_output_rotate(E_Output *output, int rotate);
+EINTERN Eina_Bool e_output_update(E_Output *output);
+EINTERN Eina_Bool e_output_mode_apply(E_Output *output, E_Output_Mode *mode);
+EINTERN Eina_Bool e_output_commit(E_Output *output);
+EINTERN Eina_Bool e_output_render(E_Output *output);
+EINTERN Eina_Bool e_output_hwc_setup(E_Output *output);
+EINTERN E_Output_Mode * e_output_best_mode_find(E_Output *output);
+EINTERN Eina_List * e_output_mode_list_get(E_Output *output);
+EINTERN E_Output_Mode * e_output_current_mode_get(E_Output *output);
+EINTERN Eina_Bool e_output_connected(E_Output *output);
+EINTERN Eina_Bool e_output_dpms_set(E_Output *output, E_OUTPUT_DPMS val);
+EINTERN E_OUTPUT_DPMS e_output_dpms_get(E_Output *output);
+EINTERN Eina_Bool e_output_dpms_async_check(E_Output *output);
+EINTERN void e_output_size_get(E_Output *output, int *w, int *h);
+EINTERN void e_output_phys_size_get(E_Output *output, int *phys_w, int *phys_h);
+EINTERN E_Plane * e_output_default_fb_target_get(E_Output *output);
+EINTERN Eina_Bool e_output_fake_config_set(E_Output *output, int w, int h);
+EINTERN Eina_Bool e_output_zoom_set(E_Output *output, double zoomx, double zoomy, int cx, int cy);
+EINTERN Eina_Bool e_output_zoom_get(E_Output *output, double *zoomx, double *zoomy, int *cx, int *cy);
+EINTERN void e_output_zoom_unset(E_Output *output);
+EINTERN Eina_Bool e_output_capture(E_Output *output, tbm_surface_h surface, Eina_Bool auto_rotate, Eina_Bool sync, E_Output_Capture_Cb func, void *data);
+EINTERN Eina_Bool e_output_stream_capture_queue(E_Output *output, tbm_surface_h surface, E_Output_Capture_Cb func, void *data);
+EINTERN Eina_Bool e_output_stream_capture_dequeue(E_Output *output, tbm_surface_h surface);
+EINTERN Eina_Bool e_output_stream_capture_start(E_Output *output);
+EINTERN void e_output_stream_capture_stop(E_Output *output);
+EINTERN void e_output_stream_capture_autorotate(E_Output *output, Eina_Bool auto_rotate);
+EINTERN Eina_Bool e_output_stream_capture_mask_image_file_set(E_Output *output, const char *file);
+EINTERN Eina_Bool e_output_stream_capture_mask_image_geometry_set(E_Output *output, int x, int y, int w, int h);
+EINTERN const char * e_output_output_id_get(E_Output *output);
+
+EINTERN Eina_Bool e_output_external_mode_change(E_Output *output, E_Output_Mode *mode);
+EINTERN Eina_Bool e_output_mirror_set(E_Output *output, E_Output *src_output);
+EINTERN void e_output_mirror_unset(E_Output *output);
+EINTERN Eina_Bool e_output_presentation_update(E_Output *output, E_Client *ec);
+EINTERN void e_output_presentation_unset(E_Output *output);
+EINTERN Eina_Bool e_output_presentation_ec_set(E_Output *output, E_Client *ec);
+EINTERN E_Client * e_output_presentation_ec_get(E_Output *output);
+
+EINTERN E_Output_Display_Mode e_output_display_mode_get(E_Output *output);
+
+EINTERN void e_output_norender_push(E_Output *output);
+EINTERN void e_output_norender_pop(E_Output *output);
+EINTERN int e_output_norender_get(E_Output *output);
+
+EINTERN void e_output_util_planes_print(void);
+EINTERN Eina_Bool e_output_is_fb_composing(E_Output *output);
+EINTERN Eina_Bool e_output_is_fb_full_compositing(E_Output *output);
+EINTERN E_Plane * e_output_fb_target_get(E_Output *output);
+EINTERN E_Output_Hook * e_output_hook_add(E_Output_Hook_Point hookpoint, E_Output_Hook_Cb func, const void *data);
+EINTERN void e_output_hook_del(E_Output_Hook *ch);
+EINTERN E_Output_Intercept_Hook * e_output_intercept_hook_add(E_Output_Intercept_Hook_Point hookpoint, E_Output_Intercept_Hook_Cb func, const void *data);
+EINTERN void e_output_intercept_hook_del(E_Output_Intercept_Hook *ch);
+EINTERN void e_output_zoom_rotating_check(E_Output *output);
+
+#endif
#include "e_comp_screen_intern.h"
#include "e_comp_wl_intern.h"
#include "e_pointer_intern.h"
+#include "e_output_intern.h"
#include <device/board-internal.h>
-
# include <tdm.h>
# include <tdm_helper.h>
# include <tbm_surface.h>
#include "e_comp_wl_intern.h"
#include "e_comp_wl_subsurface_intern.h"
#include "e_comp_wl_viewport_intern.h"
+#include "e_output_intern.h"
#include <wayland-tbm-server.h>