1 #ifndef ANDROID_DVR_VIRTUAL_TOUCHPAD_C_CLIENT_H 2 #define ANDROID_DVR_VIRTUAL_TOUCHPAD_C_CLIENT_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 typedef struct DvrVirtualTouchpad DvrVirtualTouchpad; 9 10 enum { 11 DVR_VIRTUAL_TOUCHPAD_PRIMARY = 0, 12 DVR_VIRTUAL_TOUCHPAD_VIRTUAL = 1, 13 }; 14 15 // Creates a new virtual touchpad client. 16 // 17 // @return Pointer to the created virtual touchpad client; nullptr on failure. 18 // 19 DvrVirtualTouchpad* dvrVirtualTouchpadCreate(); 20 21 // Destroys a virtual touchpad client. 22 // 23 // @param client Pointer to the virtual touchpad client to be destroyed. 24 // 25 void dvrVirtualTouchpadDestroy(DvrVirtualTouchpad* client); 26 27 // Initialize the virtual touchpad. 28 // 29 // In the current server implementation, attachment creates and configures 30 // the kernel virtual touchpad device(s). A single client may be attached 31 // and detached repeatedly, e.g. on entering and leaving VR mode. 32 // 33 // @param client Pointer to the virtual touchpad client to be attached. 34 // @return Zero on success, status_t-style error code on failure. 35 // 36 int dvrVirtualTouchpadAttach(DvrVirtualTouchpad* client); 37 38 // Shut down the virtual touchpad. 39 // 40 // @param client Pointer to the virtual touchpad client to be detached. 41 // @return Zero on success, status_t-style error code on failure. 42 // 43 int dvrVirtualTouchpadDetach(DvrVirtualTouchpad* client); 44 45 // Generate a simulated touch event. 46 // 47 // @param client Pointer to the virtual touchpad client. 48 // @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 // 54 int 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 // 64 int 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