summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/Android
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2013-12-07 15:14:29 -0500
committerJasper St. Pierre <jstpierre@mecheye.net>2013-12-31 14:03:19 -0500
commit34692ab826abc8f8faa61bdb2280b742424528f1 (patch)
treeb0eedc645badbea316ff59c125eaf808b28777ec /Source/Core/InputCommon/ControllerInterface/Android
parent43e618682e8093602fc83dfa902ee7ae3fd3a4f6 (diff)
Remove unnecessary Src/ folders
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/Android')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Android/Android.cpp95
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Android/Android.h71
2 files changed, 166 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/Android/Android.cpp b/Source/Core/InputCommon/ControllerInterface/Android/Android.cpp
new file mode 100644
index 0000000000..5213b196d1
--- /dev/null
+++ b/Source/Core/InputCommon/ControllerInterface/Android/Android.cpp
@@ -0,0 +1,95 @@
+// Copyright (C) 2003 Dolphin Project.
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+
+#include "Android.h"
+
+namespace ciface
+{
+
+namespace Android
+{
+
+void Init( std::vector<Core::Device*>& devices )
+{
+ devices.push_back(new Touchscreen(0));
+ devices.push_back(new Touchscreen(1));
+ devices.push_back(new Touchscreen(2));
+ devices.push_back(new Touchscreen(3));
+}
+
+// Touchscreens and stuff
+std::string Touchscreen::GetName() const
+{
+ return "Touchscreen";
+}
+
+std::string Touchscreen::GetSource() const
+{
+ return "Android";
+}
+
+int Touchscreen::GetId() const
+{
+ return 0;
+}
+Touchscreen::Touchscreen(int padID)
+ : _padID(padID)
+{
+ AddInput(new Button(_padID, ButtonManager::BUTTON_A));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_B));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_START));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_X));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_Y));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_Z));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_UP));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_DOWN));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_LEFT));
+ AddInput(new Button(_padID, ButtonManager::BUTTON_RIGHT));
+ AddAnalogInputs(new Axis(_padID, ButtonManager::STICK_MAIN_LEFT, -1.0f), new Axis(_padID, ButtonManager::STICK_MAIN_RIGHT));
+ AddAnalogInputs(new Axis(_padID, ButtonManager::STICK_MAIN_UP, -1.0f), new Axis(_padID, ButtonManager::STICK_MAIN_DOWN));
+ AddAnalogInputs(new Axis(_padID, ButtonManager::STICK_C_UP, -1.0f), new Axis(_padID, ButtonManager::STICK_C_DOWN));
+ AddAnalogInputs(new Axis(_padID, ButtonManager::STICK_C_LEFT, -1.0f), new Axis(_padID, ButtonManager::STICK_C_RIGHT));
+ AddAnalogInputs(new Axis(_padID, ButtonManager::TRIGGER_L), new Axis(_padID, ButtonManager::TRIGGER_L));
+ AddAnalogInputs(new Axis(_padID, ButtonManager::TRIGGER_R), new Axis(_padID, ButtonManager::TRIGGER_R));
+}
+// Buttons and stuff
+
+std::string Touchscreen::Button::GetName() const
+{
+ std::ostringstream ss;
+ ss << "Button " << (int)_index;
+ return ss.str();
+}
+
+ControlState Touchscreen::Button::GetState() const
+{
+ return ButtonManager::GetButtonPressed(_padID, _index);
+}
+std::string Touchscreen::Axis::GetName() const
+{
+ std::ostringstream ss;
+ ss << "Axis " << (int)_index;
+ return ss.str();
+}
+
+ControlState Touchscreen::Axis::GetState() const
+{
+ return ButtonManager::GetAxisValue(_padID, _index) * _neg;
+}
+
+}
+}
diff --git a/Source/Core/InputCommon/ControllerInterface/Android/Android.h b/Source/Core/InputCommon/ControllerInterface/Android/Android.h
new file mode 100644
index 0000000000..93e528f013
--- /dev/null
+++ b/Source/Core/InputCommon/ControllerInterface/Android/Android.h
@@ -0,0 +1,71 @@
+// Copyright (C) 2003 Dolphin Project.
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+#ifndef _CIFACE_ANDROID_H_
+#define _CIFACE_ANDROID_H_
+
+#include "../Device.h"
+#include "Android/ButtonManager.h"
+
+namespace ciface
+{
+namespace Android
+{
+
+void Init( std::vector<Core::Device*>& devices );
+class Touchscreen : public Core::Device
+{
+private:
+ class Button : public Input
+ {
+ public:
+ std::string GetName() const;
+ Button(int padID, ButtonManager::ButtonType index) : _padID(padID), _index(index) {}
+ ControlState GetState() const;
+ private:
+ const int _padID;
+ const ButtonManager::ButtonType _index;
+ };
+ class Axis : public Input
+ {
+ public:
+ std::string GetName() const;
+ Axis(int padID, ButtonManager::ButtonType index, float neg = 1.0f) : _padID(padID), _index(index), _neg(neg) {}
+ ControlState GetState() const;
+ private:
+ const int _padID;
+ const ButtonManager::ButtonType _index;
+ const float _neg;
+ };
+
+public:
+ bool UpdateInput() { return true; }
+ bool UpdateOutput() { return true; }
+
+ Touchscreen(int padID);
+ ~Touchscreen() {}
+
+ std::string GetName() const;
+ int GetId() const;
+ std::string GetSource() const;
+private:
+ const int _padID;
+};
+
+}
+}
+
+#endif