File: VirtualTouchpadService.h

package info (click to toggle)
android-platform-tools 34.0.5-12
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 150,900 kB
  • sloc: cpp: 805,786; java: 293,500; ansic: 128,288; xml: 127,491; python: 41,481; sh: 14,245; javascript: 9,665; cs: 3,846; asm: 2,049; makefile: 1,917; yacc: 440; awk: 368; ruby: 183; sql: 140; perl: 88; lex: 67
file content (47 lines) | stat: -rw-r--r-- 1,458 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef ANDROID_DVR_VIRTUAL_TOUCHPAD_SERVICE_H
#define ANDROID_DVR_VIRTUAL_TOUCHPAD_SERVICE_H

#include <android/dvr/BnVirtualTouchpadService.h>

#include "VirtualTouchpad.h"

namespace android {
namespace dvr {

// VirtualTouchpadService implements the service side of
// the Binder interface defined in VirtualTouchpadService.aidl.
//
class VirtualTouchpadService : public BnVirtualTouchpadService {
 public:
  explicit VirtualTouchpadService(std::unique_ptr<VirtualTouchpad> touchpad)
      : touchpad_(std::move(touchpad)), client_pid_(0) {}
  ~VirtualTouchpadService() override;

 protected:
  // Implements IVirtualTouchpadService.
  binder::Status attach() override;
  binder::Status detach() override;
  binder::Status touch(int touchpad, float x, float y, float pressure) override;
  binder::Status buttonState(int touchpad, int buttons) override;
  binder::Status scroll(int touchpad, float x, float y) override;

  // Implements BBinder::dump().
  status_t dump(int fd, const Vector<String16>& args) override;

 private:
  bool CheckPermissions();
  bool CheckTouchPermission(pid_t* out_pid);

  std::unique_ptr<VirtualTouchpad> touchpad_;

  // Only one client at a time can use the virtual touchpad.
  pid_t client_pid_;

  VirtualTouchpadService(const VirtualTouchpadService&) = delete;
  void operator=(const VirtualTouchpadService&) = delete;
};

}  // namespace dvr
}  // namespace android

#endif  // ANDROID_DVR_VIRTUAL_TOUCHPAD_SERVICE_H