Merge from TIZEN 2.3
[platform/core/uifw/e17.git] / src / bin / e_randr_private.h
1 #ifdef E_TYPEDEFS
2
3 #else
4 #ifndef E_RANDR_PRIVATE_H
5 #define E_RANDR_PRIVATE_H
6
7 #include "e.h"
8
9 #define ECORE_X_RANDR_1_1   ((1 << 16) | 1)
10 #define ECORE_X_RANDR_1_2   ((1 << 16) | 2)
11 #define ECORE_X_RANDR_1_3   ((1 << 16) | 3)
12
13 #define Ecore_X_Randr_Unset -1
14 #define Ecore_X_Randr_None   0
15
16 #define E_RANDR_11_NO                ((e_randr_screen_info.randr_version < ECORE_X_RANDR_1_1) || !e_randr_screen_info.rrvd_info.randr_info_11)
17 #define E_RANDR_12_NO                ((e_randr_screen_info.randr_version < ECORE_X_RANDR_1_2) || !e_randr_screen_info.rrvd_info.randr_info_12)
18 #define E_RANDR_12_NO_CRTCS          (E_RANDR_12_NO || !e_randr_screen_info.rrvd_info.randr_info_12->crtcs)
19 #define E_RANDR_12_NO_CRTC(crtc)     (E_RANDR_12_NO || !e_randr_screen_info.rrvd_info.randr_info_12->crtcs || (crtc == Ecore_X_Randr_None))
20 #define E_RANDR_12_NO_OUTPUTS        (E_RANDR_12_NO || !e_randr_screen_info.rrvd_info.randr_info_12->outputs)
21 #define E_RANDR_12_NO_OUTPUT(output) (E_RANDR_12_NO || !e_randr_screen_info.rrvd_info.randr_info_12->outputs || (output == Ecore_X_Randr_None))
22 #define E_RANDR_12_NO_MODES          (E_RANDR_12_NO || !e_randr_screen_info.rrvd_info.randr_info_12->modes)
23 #define E_RANDR_12_NO_MODE(mode)     (E_RANDR_12_NO || !e_randr_screen_info.rrvd_info.randr_info_12->modes || (mode == Ecore_X_Randr_None))
24
25 // Generic
26 Eina_Bool               _try_restore_configuration(void);
27
28 // RandRR == 1.1
29 E_Randr_Screen_Info_11 *_11_screen_info_new(void);
30 void                    _11_screen_info_free(E_Randr_Screen_Info_11 *screen_info_11);
31 Eina_Bool               _11_screen_info_refresh(void);
32 Eina_Bool               _11_try_restore_configuration(void);
33 void                    _11_store_configuration(E_Randr_Configuration_Store_Modifier modifier);
34
35 // RandRR >= 1.2
36 E_Randr_Screen_Info_12 *_12_screen_info_new(void);
37 void                    _12_screen_info_free(E_Randr_Screen_Info_12 *screen_info_12);
38 Eina_Bool               _12_screen_info_refresh(void);
39 void                    _12_policies_restore(void);
40 void                    _12_event_listeners_add(void);
41 void                    _12_event_listeners_remove(void);
42 // Retrieval functions
43 Ecore_X_Randr_Mode_Info *_12_screen_info_mode_info_get(const Ecore_X_Randr_Mode mode);
44 E_Randr_Crtc_Info       *_12_screen_info_crtc_info_get(const Ecore_X_Randr_Crtc crtc);
45 E_Randr_Output_Info     *_12_screen_info_output_info_get(const Ecore_X_Randr_Output output);
46 Eina_Bool                _12_screen_info_edid_is_available(const E_Randr_Edid_Hash *hash);
47 // (Re)store data
48 E_Randr_Serialized_Setup_12 *_12_serialized_setup_new(void);
49 void                         _12_serialized_setup_free(E_Randr_Serialized_Setup_12 *ss_12);
50 Eina_Bool                    _12_try_restore_configuration(void);
51 void                         _12_store_configuration(E_Randr_Configuration_Store_Modifier modifier);
52
53 // >= 1.2 Substructures helper functions
54 E_Randr_Monitor_Info    *_monitor_info_new(E_Randr_Output_Info *output_info);
55 void                     _monitor_info_free(E_Randr_Monitor_Info *monitor_info);
56 void                     _monitor_modes_refs_set(E_Randr_Monitor_Info *mi, Ecore_X_Randr_Output output);
57 E_Randr_Output_Info     *_output_info_new(Ecore_X_Randr_Output output);
58 void                     _output_info_free(E_Randr_Output_Info *output_info);
59 void                     _output_refs_set(E_Randr_Output_Info *output_info);
60 Ecore_X_Randr_Output    *_outputs_to_array(Eina_List *outputs_info);
61 Eina_List               *_outputs_common_modes_get(Eina_List *outputs, Ecore_X_Randr_Mode_Info *max_size_mode);
62
63 E_Randr_Crtc_Info *      _crtc_info_new(Ecore_X_Randr_Crtc crtc);
64 void                     _crtc_info_free(E_Randr_Crtc_Info *crtc_info);
65 void                     _crtc_refs_set(E_Randr_Crtc_Info *crtc_info);
66 void                     _crtc_outputs_refs_set(E_Randr_Crtc_Info *crtc_info);
67 const E_Randr_Crtc_Info *_crtc_according_to_policy_get(E_Randr_Crtc_Info *but, Ecore_X_Randr_Output_Policy policy);
68
69 #endif
70 #endif