Home | History | Annotate | Download | only in vnc_server
      1 #pragma once
      2 
      3 /*
      4  * Copyright (C) 2017 The Android Open Source Project
      5  *
      6  * Licensed under the Apache License, Version 2.0 (the "License");
      7  * you may not use this file except in compliance with the License.
      8  * You may obtain a copy of the License at
      9  *
     10  *      http://www.apache.org/licenses/LICENSE-2.0
     11  *
     12  * Unless required by applicable law or agreed to in writing, software
     13  * distributed under the License is distributed on an "AS IS" BASIS,
     14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     15  * See the License for the specific language governing permissions and
     16  * limitations under the License.
     17  */
     18 
     19 #include "vnc_utils.h"
     20 
     21 #include <map>
     22 #include <mutex>
     23 
     24 #include "common/vsoc/lib/input_events_region_view.h"
     25 
     26 namespace cvd {
     27 namespace vnc {
     28 
     29 class VirtualInputs {
     30  public:
     31   static VirtualInputs* Get();
     32 
     33   virtual ~VirtualInputs() = default;
     34 
     35   virtual void GenerateKeyPressEvent(int code, bool down) = 0;
     36   virtual void PressPowerButton(bool down) = 0;
     37   virtual void HandlePointerEvent(bool touch_down, int x, int y) = 0;
     38 
     39  protected:
     40   VirtualInputs();
     41 
     42   std::map<uint32_t, uint16_t> keymapping_;
     43 };
     44 
     45 }  // namespace vnc
     46 }  // namespace cvd
     47