On Sun, 19 Feb 2012 15:57:30 +0100 Leif Middelschulte <leif.middelschu...@gmail.com> said:
> 2012/2/19 <cpmicha...@comcast.net>: > > I suppose the xcb is left to me to fix when I run into this... > Yeah, sorry Michael I have to push this onto you. I'm not familiar > with the XCB bindings. It was necessary for stuff in e_randr. > I hope it's not too much effort. now's a good time to learn. just read the xcb headers - if u know the xlib functions you should figure out the xcb ones and then reading existing xcb code will show you how to use it. :) this is how i've learned most of what i know - reading someone elses code. standing on the shoulders of giants. > > > > dh > > > > > > ----- Original Message ----- > > From: "Enlightenment SVN" <no-re...@enlightenment.org> > > To: enlightenment-...@lists.sourceforge.net > > Sent: Thursday, February 16, 2012 2:26:30 PM > > Subject: E SVN: leif IN trunk/ecore: . src/lib/ecore_x src/lib/ecore_x/xlib > > > > Log: > > Add mode add/del functions to ecore_x_randr > > > > Author: leif > > Date: 2012-02-16 11:26:30 -0800 (Thu, 16 Feb 2012) > > New Revision: 68031 > > Trac: http://trac.enlightenment.org/e/changeset/68031 > > > > Modified: > > trunk/ecore/ChangeLog trunk/ecore/src/lib/ecore_x/Ecore_X.h > > trunk/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c > > > > Modified: trunk/ecore/ChangeLog > > =================================================================== > > --- trunk/ecore/ChangeLog 2012-02-16 18:38:37 UTC (rev 68030) > > +++ trunk/ecore/ChangeLog 2012-02-16 19:26:30 UTC (rev 68031) > > @@ -494,3 +494,9 @@ > > > > * Add ecore_imf APIs to set return key type, disable return key. > > > > +2012-02-16 Leif Middelschulte (T_UNIX) > > + > > + * Add ecore_x_randr_mode_add to add a mode to a display > > + * Add ecore_x_randr_mode_del to remove a mode from the display > > + * Add ecore_x_randr_output_mode_add to add a mode to an output > > + * Add ecore_x_randr_output_mode_del to remove a mode from an output > > > > Modified: trunk/ecore/src/lib/ecore_x/Ecore_X.h > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-02-16 18:38:37 UTC (rev > > 68030) +++ trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-02-16 19:26:30 UTC > > (rev 68031) @@ -2749,6 +2749,11 @@ > > EAPI Ecore_X_Randr_Mode_Info ** > > ecore_x_randr_modes_info_get(Ecore_X_Window root, > > int *num); > > +EAPI Ecore_X_Randr_Mode > > +ecore_x_randr_mode_info_add(Ecore_X_Window root, > > + Ecore_X_Randr_Mode_Info *mode_info); > > +EAPI void > > +ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode); > > EAPI Ecore_X_Randr_Mode_Info * > > ecore_x_randr_mode_info_get(Ecore_X_Window root, > > Ecore_X_Randr_Mode mode); > > @@ -2840,6 +2845,12 @@ > > Ecore_X_Randr_Crtc crtc_r2, > > Ecore_X_Randr_Output_Policy policy, > > Ecore_X_Randr_Relative_Alignment alignment); > > +EAPI Eina_Bool > > +ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, > > + Ecore_X_Randr_Mode mode); > > +EAPI void > > +ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, > > + Ecore_X_Randr_Mode mode); > > EAPI Ecore_X_Randr_Mode * > > ecore_x_randr_output_modes_get(Ecore_X_Window root, > > Ecore_X_Randr_Output output, > > > > Modified: trunk/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c 2012-02-16 18:38:37 > > UTC (rev 68030) +++ trunk/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c > > 2012-02-16 19:26:30 UTC (rev 68031) @@ -380,6 +380,48 @@ > > } > > > > /* > > + * @brief add a mode to a display > > + * @param root window to which's screen's ressources are added > > + * @param mode_info > > + * @return Ecore_X_Randr_Mode of the added mode. Ecore_X_Randr_None if mode > > + * adding failed. > > + * @since 1.2.0 > > + */ > > +EAPI Ecore_X_Randr_Mode > > +ecore_x_randr_mode_info_add(Ecore_X_Window root, > > + Ecore_X_Randr_Mode_Info *mode_info) > > +{ > > +#ifdef ECORE_XRANDR > > + RANDR_CHECK_1_2_RET(EINA_FALSE); > > + Ecore_X_Randr_Mode mode = Ecore_X_Randr_None; > > + > > + if (_ecore_x_randr_root_validate(root) && mode_info) > > + mode = XRRCreateMode(_ecore_x_disp, root, (XRRModeInfo*)mode_info); > > + > > + return mode; > > +#else > > + return Ecore_X_Randr_None; > > +#endif > > +} > > + > > +/* > > + * @brief delete a mode from the display > > + * @param mode_info > > + * @since 1.2.0 > > + */ > > +EAPI void > > +ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode) > > +{ > > +#ifdef ECORE_XRANDR > > + RANDR_CHECK_1_2_RET(); > > + > > + XRRDestroyMode(_ecore_x_disp, mode); > > +#else > > + return; > > +#endif > > +} > > + > > +/* > > * @brief get detailed information for a given mode id > > * @param root window which's screen's ressources are queried > > * @param mode the XID which identifies the mode of interest > > @@ -1364,6 +1406,54 @@ > > #endif > > } > > > > +/* > > + * @brief add given mode to given output > > + * @param output the output the mode is added to > > + * @param mode the mode added to the output > > + * @return EINA_FALSE if output or mode equal Ecore_X_Randr_None, else > > EINA_TRUE > > + * Additionally, if xcb backend is used, the success of the addition is > > reported > > + * back directly. > > + * @since 1.2.0 > > + */ > > +EAPI Eina_Bool > > +ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, > > + Ecore_X_Randr_Mode mode) > > +{ > > +#ifdef ECORE_XRANDR > > + RANDR_CHECK_1_2_RET(EINA_FALSE); > > + > > + if ((output == Ecore_X_Randr_None) || (mode == Ecore_X_Randr_None)) > > + return EINA_FALSE; > > + > > + XRRAddOutputMode(_ecore_x_disp, output, mode); > > + return EINA_TRUE; > > +#else > > + return EINA_FALSE; > > +#endif > > +} > > + > > +/* > > + * @brief delete given mode from given output > > + * @param output the output the mode is removed from > > + * @param mode the mode removed from the output > > + * @since 1.2.0 > > + */ > > +EAPI void > > +ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, > > + Ecore_X_Randr_Mode mode) > > +{ > > +#ifdef ECORE_XRANDR > > + RANDR_CHECK_1_2_RET(); > > + > > + if ((output == Ecore_X_Randr_None) || (mode == Ecore_X_Randr_None)) > > + return; > > + > > + XRRDeleteOutputMode(_ecore_x_disp, output, mode); > > +#else > > + return; > > +#endif > > +} > > + > > EAPI Ecore_X_Randr_Mode * > > ecore_x_randr_output_modes_get(Ecore_X_Window root, > > Ecore_X_Randr_Output output, > > > > > > ------------------------------------------------------------------------------ > > Virtualization & Cloud Management Using Capacity Planning > > Cloud computing makes use of virtualization - but cloud computing > > also focuses on allowing computing to be delivered as a service. > > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > > _______________________________________________ > > enlightenment-svn mailing list > > enlightenment-...@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > ------------------------------------------------------------------------------ > > Virtualization & Cloud Management Using Capacity Planning > > Cloud computing makes use of virtualization - but cloud computing > > also focuses on allowing computing to be delivered as a service. > > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > -- > Leif > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel