virtual_touchpad_client.h revision de1cdaebc9b8fdbc5348e6c07f849b74bacc485d
14199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#ifndef ANDROID_DVR_VIRTUAL_TOUCHPAD_C_CLIENT_H 24199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#define ANDROID_DVR_VIRTUAL_TOUCHPAD_C_CLIENT_H 34199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 44199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#ifdef __cplusplus 54199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaextern "C" { 64199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#endif 74199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 84199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawatypedef struct DvrVirtualTouchpad DvrVirtualTouchpad; 94199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaenum { 114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa DVR_VIRTUAL_TOUCHPAD_PRIMARY = 0, 124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa DVR_VIRTUAL_TOUCHPAD_VIRTUAL = 1, 134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa}; 144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// Creates a new virtual touchpad client. 164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// @return Pointer to the created virtual touchpad client; nullptr on failure. 184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke MiyakawaDvrVirtualTouchpad* dvrVirtualTouchpadCreate(); 204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// Destroys a virtual touchpad client. 224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// @param client Pointer to the virtual touchpad client to be destroyed. 244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawavoid dvrVirtualTouchpadDestroy(DvrVirtualTouchpad* client); 264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// Initialize the virtual touchpad. 28677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa// 291de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa// In the current server implementation, attachment creates and configures 304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// the kernel virtual touchpad device(s). A single client may be attached 314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// and detached repeatedly, e.g. on entering and leaving VR mode. 32677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa// 331de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa// @param client Pointer to the virtual touchpad client to be attached. 344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// @return Zero on success, status_t-style error code on failure. 354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 36677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawaint dvrVirtualTouchpadAttach(DvrVirtualTouchpad* client); 371de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa 384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// Shut down the virtual touchpad. 394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 40677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa// @param client Pointer to the virtual touchpad client to be detached. 411de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa// @return Zero on success, status_t-style error code on failure. 424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaint dvrVirtualTouchpadDetach(DvrVirtualTouchpad* client); 444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 45677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa// Generate a simulated touch event. 461de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa// 47677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa// @param client Pointer to the virtual touchpad client. 484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// @param touchpad Selects touchpad. 49// @param x Horizontal touch position. 50// @param y Vertical touch position. 51// @param pressure Touch pressure; use 0.0 for no touch (lift or hover). 52// @return Zero on success, status_t-style error code on failure. 53// 54int dvrVirtualTouchpadTouch(DvrVirtualTouchpad* client, int touchpad, float x, 55 float y, float pressure); 56 57// Generate a simulated touchpad button state event. 58// 59// @param client Pointer to the virtual touchpad client. 60// @param touchpad Selects touchpad. 61// @param buttons A union of MotionEvent BUTTON_* values. 62// @return Zero on success, status_t-style error code on failure. 63// 64int dvrVirtualTouchpadButtonState(DvrVirtualTouchpad* client, int touchpad, 65 int buttons); 66 67#ifdef __cplusplus 68} // extern "C" 69#endif 70 71#endif // ANDROID_DVR_VIRTUAL_TOUCHPAD_CLIENT_H 72