[Windows] Remove redundant DirectSound error codes
[xbmc.git] / xbmc / platform / android / activity / JNIMainActivity.cpp
blobe1ed111245c10912bab3b75529e014fed734734e
1 /*
2 * Copyright (C) 2015-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "JNIMainActivity.h"
11 #include "CompileInfo.h"
13 #include <androidjni/Activity.h>
14 #include <androidjni/Intent.h>
15 #include <androidjni/jutils-details.hpp>
17 using namespace jni;
19 CJNIMainActivity* CJNIMainActivity::m_appInstance(NULL);
21 CJNIMainActivity::CJNIMainActivity(const ANativeActivity *nativeActivity)
22 : CJNIActivity(nativeActivity)
24 m_appInstance = this;
27 CJNIMainActivity::~CJNIMainActivity()
29 m_appInstance = NULL;
32 void CJNIMainActivity::RegisterNatives(JNIEnv* env)
34 std::string pkgRoot = CCompileInfo::GetClass();
36 const std::string mainClass = pkgRoot + "/Main";
37 const std::string settingsObserver = pkgRoot + "/XBMCSettingsContentObserver";
38 const std::string inputDeviceListener = pkgRoot + "/XBMCInputDeviceListener";
40 jclass cMain = env->FindClass(mainClass.c_str());
41 if (cMain)
43 JNINativeMethod methods[] = {
44 {"_onNewIntent", "(Landroid/content/Intent;)V",
45 reinterpret_cast<void*>(&CJNIMainActivity::_onNewIntent)},
46 {"_onActivityResult", "(IILandroid/content/Intent;)V",
47 reinterpret_cast<void*>(&CJNIMainActivity::_onActivityResult)},
48 {"_doFrame", "(J)V", reinterpret_cast<void*>(&CJNIMainActivity::_doFrame)},
49 {"_callNative", "(JJ)V", reinterpret_cast<void*>(&CJNIMainActivity::_callNative)},
50 {"_onVisibleBehindCanceled", "()V",
51 reinterpret_cast<void*>(&CJNIMainActivity::_onVisibleBehindCanceled)},
53 env->RegisterNatives(cMain, methods, sizeof(methods) / sizeof(methods[0]));
56 jclass cSettingsObserver = env->FindClass(settingsObserver.c_str());
57 if (cSettingsObserver)
59 JNINativeMethod methods[] = {
60 {"_onVolumeChanged", "(I)V", reinterpret_cast<void*>(&CJNIMainActivity::_onVolumeChanged)},
62 env->RegisterNatives(cSettingsObserver, methods, sizeof(methods) / sizeof(methods[0]));
65 jclass cInputDeviceListener = env->FindClass(inputDeviceListener.c_str());
66 if (cInputDeviceListener)
68 JNINativeMethod methods[] = {
69 {"_onInputDeviceAdded", "(I)V",
70 reinterpret_cast<void*>(&CJNIMainActivity::_onInputDeviceAdded)},
71 {"_onInputDeviceChanged", "(I)V",
72 reinterpret_cast<void*>(&CJNIMainActivity::_onInputDeviceChanged)},
73 {"_onInputDeviceRemoved", "(I)V",
74 reinterpret_cast<void*>(&CJNIMainActivity::_onInputDeviceRemoved)}};
75 env->RegisterNatives(cInputDeviceListener, methods, sizeof(methods) / sizeof(methods[0]));
79 void CJNIMainActivity::_onNewIntent(JNIEnv *env, jobject context, jobject intent)
81 (void)env;
82 (void)context;
83 if (m_appInstance)
84 m_appInstance->onNewIntent(CJNIIntent(jhobject::fromJNI(intent)));
87 void CJNIMainActivity::_onActivityResult(JNIEnv *env, jobject context, jint requestCode, jint resultCode, jobject resultData)
89 (void)env;
90 (void)context;
91 if (m_appInstance)
92 m_appInstance->onActivityResult(requestCode, resultCode, CJNIIntent(jhobject::fromJNI(resultData)));
95 void CJNIMainActivity::_callNative(JNIEnv *env, jobject context, jlong funcAddr, jlong variantAddr)
97 (void)env;
98 (void)context;
99 ((void (*)(CVariant *))funcAddr)((CVariant *)variantAddr);
102 void CJNIMainActivity::_onVisibleBehindCanceled(JNIEnv* env, jobject context)
104 (void)env;
105 (void)context;
106 if (m_appInstance)
107 m_appInstance->onVisibleBehindCanceled();
110 void CJNIMainActivity::runNativeOnUiThread(void (*callback)(void*), void* variant)
112 call_method<void>(m_context,
113 "runNativeOnUiThread", "(JJ)V", (jlong)callback, (jlong)variant);
116 void CJNIMainActivity::_onVolumeChanged(JNIEnv *env, jobject context, jint volume)
118 (void)env;
119 (void)context;
120 if(m_appInstance)
121 m_appInstance->onVolumeChanged(volume);
124 void CJNIMainActivity::_onInputDeviceAdded(JNIEnv *env, jobject context, jint deviceId)
126 static_cast<void>(env);
127 static_cast<void>(context);
129 if (m_appInstance != nullptr)
130 m_appInstance->onInputDeviceAdded(deviceId);
133 void CJNIMainActivity::_onInputDeviceChanged(JNIEnv *env, jobject context, jint deviceId)
135 static_cast<void>(env);
136 static_cast<void>(context);
138 if (m_appInstance != nullptr)
139 m_appInstance->onInputDeviceChanged(deviceId);
142 void CJNIMainActivity::_onInputDeviceRemoved(JNIEnv *env, jobject context, jint deviceId)
144 static_cast<void>(env);
145 static_cast<void>(context);
147 if (m_appInstance != nullptr)
148 m_appInstance->onInputDeviceRemoved(deviceId);
151 void CJNIMainActivity::_doFrame(JNIEnv *env, jobject context, jlong frameTimeNanos)
153 (void)env;
154 (void)context;
155 if(m_appInstance)
156 m_appInstance->doFrame(frameTimeNanos);
159 CJNIRect CJNIMainActivity::getDisplayRect()
161 return call_method<jhobject>(m_context,
162 "getDisplayRect", "()Landroid/graphics/Rect;");
165 void CJNIMainActivity::registerMediaButtonEventReceiver()
167 call_method<void>(m_context,
168 "registerMediaButtonEventReceiver", "()V");
171 void CJNIMainActivity::unregisterMediaButtonEventReceiver()
173 call_method<void>(m_context,
174 "unregisterMediaButtonEventReceiver", "()V");