1 // Copyright 2016 Dolphin Emulator Project 2 // Licensed under GPLv2+ 3 // Refer to the license.txt file included. 4 5 #pragma once 6 7 #ifdef ANDROID 8 #include <jni.h> 9 #include <string> 10 11 #include "Common/StringUtil.h" 12 #include "Core/HW/WiimoteReal/WiimoteReal.h" 13 14 namespace WiimoteReal 15 { 16 class WiimoteAndroid final : public Wiimote 17 { 18 public: 19 WiimoteAndroid(int index); 20 ~WiimoteAndroid() override; GetId()21 std::string GetId() const override { return "Android " + std::to_string(m_mayflash_index); } 22 23 protected: 24 bool ConnectInternal() override; 25 void DisconnectInternal() override; 26 bool IsConnected() const override; IOWakeup()27 void IOWakeup() override{}; 28 int IORead(u8* buf) override; 29 int IOWrite(u8 const* buf, size_t len) override; 30 31 private: 32 int m_mayflash_index; 33 bool is_connected = true; 34 35 JNIEnv* m_env; 36 37 jmethodID m_input_func; 38 jmethodID m_output_func; 39 40 jbyteArray m_java_wiimote_payload; 41 }; 42 43 class WiimoteScannerAndroid final : public WiimoteScannerBackend 44 { 45 public: 46 WiimoteScannerAndroid() = default; 47 ~WiimoteScannerAndroid() override = default; IsReady()48 bool IsReady() const override { return true; } 49 void FindWiimotes(std::vector<Wiimote*>&, Wiimote*&) override; Update()50 void Update() override {} 51 }; 52 } // namespace WiimoteReal 53 54 #else 55 #include "Core/HW/WiimoteReal/IODummy.h" 56 namespace WiimoteReal 57 { 58 using WiimoteScannerAndroid = WiimoteScannerDummy; 59 } 60 #endif 61