189af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel#ifndef ANDROID_DVR_VIRTUAL_TOUCHPAD_CLIENT_H
289af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel#define ANDROID_DVR_VIRTUAL_TOUCHPAD_CLIENT_H
389af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel
489af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel#include "VirtualTouchpad.h"
589af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel
689af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedelnamespace android {
789af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedelnamespace dvr {
889af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel
989af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel// VirtualTouchpadClient implements a VirtualTouchpad by connecting to
1089af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel// a VirtualTouchpadService over Binder.
1189af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel//
1289af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedelclass VirtualTouchpadClient : public VirtualTouchpad {
1389af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel public:
1489af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel  // VirtualTouchpad implementation:
15de1cdaebc9b8fdbc5348e6c07f849b74bacc485dKevin Schoedel  static std::unique_ptr<VirtualTouchpad> Create();
164b64dd48b6896d6b963f0a3a0259d3d2a7076a9eKevin Schoedel  status_t Attach() override;
174b64dd48b6896d6b963f0a3a0259d3d2a7076a9eKevin Schoedel  status_t Detach() override;
183002b8a74431dd7c005269cf9306443a4b4963f1Kevin Schoedel  status_t Touch(int touchpad, float x, float y, float pressure) override;
193002b8a74431dd7c005269cf9306443a4b4963f1Kevin Schoedel  status_t ButtonState(int touchpad, int buttons) override;
204b64dd48b6896d6b963f0a3a0259d3d2a7076a9eKevin Schoedel  void dumpInternal(String8& result) override;
2189af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel
2289af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel protected:
2389af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel  VirtualTouchpadClient() {}
243002b8a74431dd7c005269cf9306443a4b4963f1Kevin Schoedel  ~VirtualTouchpadClient() override {}
2589af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel
2689af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel private:
2789af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel  VirtualTouchpadClient(const VirtualTouchpadClient&) = delete;
2889af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel  void operator=(const VirtualTouchpadClient&) = delete;
2989af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel};
3089af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel
3189af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel}  // namespace dvr
3289af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel}  // namespace android
3389af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel
3489af70bce420f011adfeb0f80984b3895c4d7d9bKevin Schoedel#endif  // ANDROID_DVR_VIRTUAL_TOUCHPAD_CLIENT_H
35