1#ifndef ANDROID_DVR_VIRTUAL_TOUCHPAD_C_CLIENT_H 2#define ANDROID_DVR_VIRTUAL_TOUCHPAD_C_CLIENT_H 3 4#include <dvr/dvr_api.h> 5 6#ifdef __cplusplus 7extern "C" { 8#endif 9 10typedef struct DvrVirtualTouchpad DvrVirtualTouchpad; 11 12// Creates a new virtual touchpad client. 13// 14// @return Pointer to the created virtual touchpad client; nullptr on failure. 15// 16DvrVirtualTouchpad* dvrVirtualTouchpadCreate(); 17 18// Destroys a virtual touchpad client. 19// 20// @param client Pointer to the virtual touchpad client to be destroyed. 21// 22void dvrVirtualTouchpadDestroy(DvrVirtualTouchpad* client); 23 24// Initialize the virtual touchpad. 25// 26// In the current server implementation, attachment creates and configures 27// the kernel virtual touchpad device(s). A single client may be attached 28// and detached repeatedly, e.g. on entering and leaving VR mode. 29// 30// @param client Pointer to the virtual touchpad client to be attached. 31// @return Zero on success, status_t-style error code on failure. 32// 33int dvrVirtualTouchpadAttach(DvrVirtualTouchpad* client); 34 35// Shut down the virtual touchpad. 36// 37// @param client Pointer to the virtual touchpad client to be detached. 38// @return Zero on success, status_t-style error code on failure. 39// 40int dvrVirtualTouchpadDetach(DvrVirtualTouchpad* client); 41 42// Generate a simulated touch event. 43// 44// @param client Pointer to the virtual touchpad client. 45// @param touchpad Selects touchpad. 46// @param x Horizontal touch position. 47// @param y Vertical touch position. 48// @param pressure Touch pressure; use 0.0 for no touch (lift or hover). 49// @return Zero on success, status_t-style error code on failure. 50// 51int dvrVirtualTouchpadTouch(DvrVirtualTouchpad* client, int touchpad, float x, 52 float y, float pressure); 53 54// Generate a simulated touchpad button state event. 55// 56// @param client Pointer to the virtual touchpad client. 57// @param touchpad Selects touchpad. 58// @param buttons A union of MotionEvent BUTTON_* values. 59// @return Zero on success, status_t-style error code on failure. 60// 61int dvrVirtualTouchpadButtonState(DvrVirtualTouchpad* client, int touchpad, 62 int buttons); 63 64// Generate a simulated scroll event. 65// 66// @param client Pointer to the virtual touchpad client. 67// @param touchpad Selects touchpad. 68// @param x Horizontal scroll increment. 69// @param y Vertical scroll increment. 70// @return Zero on success, status_t-style error code on failure. 71// 72int dvrVirtualTouchpadScroll(DvrVirtualTouchpad* client, int touchpad, float x, 73 float y); 74 75#ifdef __cplusplus 76} // extern "C" 77#endif 78 79#endif // ANDROID_DVR_VIRTUAL_TOUCHPAD_CLIENT_H 80