#include <tbm_surface_internal.h>
#include "tdm_types.h"
+#include "tdm_deprecated.h"
#ifdef __cplusplus
extern "C" {
tdm_display_deinit(tdm_display *dpy);
/**
- * @brief Update a display object
- * @details
- * When new output is connected, a frontend user need to call this function.
- * And a frontend user can the new output information with tdm_output_get_xxx functions.
- * @param[in] dpy A display object
- * @return #TDM_ERROR_NONE if success. Otherwise, error value.
- */
-tdm_error
-tdm_display_update(tdm_display *dpy);
-
-/**
* @brief Get the file descriptor
* @details TDM handles the events of fd with #tdm_display_handle_events.
* @param[in] dpy A display object
tdm_display_handle_events(tdm_display *dpy);
/**
- * @brief Get the information of the TDM backend module.
+ * @brief Flush the all events to clients
* @param[in] dpy A display object
- * @param[out] name The name of the TDM backend module
- * @param[out] vendor The vendor of the TDM backend module
- * @param[out] version The version of the TDM backend module
- * @return #TDM_ERROR_NONE if success. Otherwise, error value.
*/
-tdm_error
-tdm_display_get_backend_info(tdm_display *dpy, const char **name,
- const char **vendor, int *major, int *minor);
+void
+tdm_display_flush(tdm_display *dpy);
/**
* @brief Get the capabilities of a display object.
int *max_w, int *max_h, int *preferred_align);
/**
- * @brief Get the max layer counts which a display object can show on screen.
- * @details -1 means that a TDM backend module doesn't define the value.
- * @param[in] dpy A display object
- * @param[out] count The max count of layers
- * @return #TDM_ERROR_NONE if success. Otherwise, error value.
- */
-tdm_error
-tdm_display_get_max_layer_count(tdm_display *dpy, int *max_count);
-
-/**
* @brief Get the output counts which a display object has.
* @param[in] dpy A display object
* @param[out] count The count of outputs
tdm_display_get_output(tdm_display *dpy, int index, tdm_error *error);
/**
+ * @brief Find a output object which has the given name.
+ * @param[in] dpy A display object
+ * @param[in] name The name of a output object
+ * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value.
+ * @return A output object if success. Otherwise, NULL.
+ */
+tdm_output *
+tdm_display_find_output(tdm_display *dpy, const char *name, tdm_error *error);
+
+/**
* @brief Create a pp object.
* @param[in] dpy A display object
* @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value.
tdm_display_create_pp(tdm_display *dpy, tdm_error *error);
/**
+ * @brief Get the information of the TDM backend module.
+ * @param[in] module A backend module object
+ * @param[out] name The name of the TDM backend module
+ * @param[out] vendor The vendor of the TDM backend module
+ * @param[out] version The version of the TDM backend module
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+tdm_error
+tdm_module_get_info(tdm_module *module, const char **name,
+ const char **vendor, int *major, int *minor);
+
+/**
+ * @brief Get a backend module object of the given output.
+ * @param[in] output A output object
+ * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value.
+ * @return A backend object if success. Otherwise, NULL.
+ */
+tdm_module *
+tdm_output_get_backend_module(tdm_output *output, tdm_error *error);
+
+/**
* @brief Get the capabilities of a output object.
* @param[in] output A output object
* @param[out] capabilities The capabilities of a output object
tdm_output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value);
/**
+ * @brief Check if a output object has the capture capability
+ * @param[in] output A output object
+ * @param[out] has_capability 1: has the capability, 0: not has the capability
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+tdm_error
+tdm_output_has_capture_capability(tdm_output *output, unsigned int *has_capability);
+
+/**
* @brief Create a capture object of a output object
* @param[in] output A output object
* @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value.
/**
* @brief Get a output object of a layer object
* @param[in] layer A layer object
+ * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value.
* @return A TDM output object if success. Otherwise, NULL.
*/
tdm_output*
* @details A displaying TDM buffer is a current showing buffer on screen
* that is set to layer object and applied output object of a layer object.
* @param[in] layer A layer object
+ * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value.
* @return A TDM buffer if success. Otherwise, NULL.
*/
tbm_surface_h
tdm_vblank_destroy(tdm_vblank *vblank);
/**
+ * @brief Get a output object of a vblank object
+ * @param[in] vblank A vblank object
+ * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value.
+ * @return A TDM output object if success. Otherwise, NULL.
+ * @see #tdm_vblank_create
+ */
+tdm_output *
+tdm_vblank_get_output(tdm_vblank *vblank, tdm_error *error);
+
+/**
* @brief Get the client PID for a vblank object
* @param[in] vblank A vblank object
* @param[out] pid PID of vblank's client