1 /*-------------------------------------------------------------------------
2 * drawElements Quality Program Tester Core
3 * ----------------------------------------
4 *
5 * Copyright 2014 The Android Open Source Project
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 *//*!
20 * \file
21 * \brief Android Native Activity.
22 *//*--------------------------------------------------------------------*/
23
24 #include "tcuAndroidNativeActivity.hpp"
25 #include "deMemory.h"
26
27 DE_BEGIN_EXTERN_C
28
onStartCallback(ANativeActivity * activity)29 static void onStartCallback(ANativeActivity *activity)
30 {
31 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onStart();
32 }
33
onResumeCallback(ANativeActivity * activity)34 static void onResumeCallback(ANativeActivity *activity)
35 {
36 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onResume();
37 }
38
onSaveInstanceStateCallback(ANativeActivity * activity,size_t * outSize)39 static void *onSaveInstanceStateCallback(ANativeActivity *activity, size_t *outSize)
40 {
41 return static_cast<tcu::Android::NativeActivity *>(activity->instance)->onSaveInstanceState(outSize);
42 }
43
onPauseCallback(ANativeActivity * activity)44 static void onPauseCallback(ANativeActivity *activity)
45 {
46 return static_cast<tcu::Android::NativeActivity *>(activity->instance)->onPause();
47 }
48
onStopCallback(ANativeActivity * activity)49 static void onStopCallback(ANativeActivity *activity)
50 {
51 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onStop();
52 }
53
onDestroyCallback(ANativeActivity * activity)54 static void onDestroyCallback(ANativeActivity *activity)
55 {
56 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onDestroy();
57 }
58
onWindowFocusChangedCallback(ANativeActivity * activity,int hasFocus)59 static void onWindowFocusChangedCallback(ANativeActivity *activity, int hasFocus)
60 {
61 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onWindowFocusChanged(hasFocus);
62 }
63
onNativeWindowCreatedCallback(ANativeActivity * activity,ANativeWindow * window)64 static void onNativeWindowCreatedCallback(ANativeActivity *activity, ANativeWindow *window)
65 {
66 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onNativeWindowCreated(window);
67 }
68
onNativeWindowResizedCallback(ANativeActivity * activity,ANativeWindow * window)69 static void onNativeWindowResizedCallback(ANativeActivity *activity, ANativeWindow *window)
70 {
71 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onNativeWindowResized(window);
72 }
73
onNativeWindowRedrawNeededCallback(ANativeActivity * activity,ANativeWindow * window)74 static void onNativeWindowRedrawNeededCallback(ANativeActivity *activity, ANativeWindow *window)
75 {
76 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onNativeWindowRedrawNeeded(window);
77 }
78
onNativeWindowDestroyedCallback(ANativeActivity * activity,ANativeWindow * window)79 static void onNativeWindowDestroyedCallback(ANativeActivity *activity, ANativeWindow *window)
80 {
81 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onNativeWindowDestroyed(window);
82 }
83
onInputQueueCreatedCallback(ANativeActivity * activity,AInputQueue * queue)84 static void onInputQueueCreatedCallback(ANativeActivity *activity, AInputQueue *queue)
85 {
86 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onInputQueueCreated(queue);
87 }
88
onInputQueueDestroyedCallback(ANativeActivity * activity,AInputQueue * queue)89 static void onInputQueueDestroyedCallback(ANativeActivity *activity, AInputQueue *queue)
90 {
91 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onInputQueueDestroyed(queue);
92 }
93
onContentRectChangedCallback(ANativeActivity * activity,const ARect * rect)94 static void onContentRectChangedCallback(ANativeActivity *activity, const ARect *rect)
95 {
96 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onContentRectChanged(rect);
97 }
98
onConfigurationChangedCallback(ANativeActivity * activity)99 static void onConfigurationChangedCallback(ANativeActivity *activity)
100 {
101 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onConfigurationChanged();
102 }
103
onLowMemoryCallback(ANativeActivity * activity)104 static void onLowMemoryCallback(ANativeActivity *activity)
105 {
106 static_cast<tcu::Android::NativeActivity *>(activity->instance)->onLowMemory();
107 }
108
109 DE_END_EXTERN_C
110
111 namespace tcu
112 {
113 namespace Android
114 {
115
NativeActivity(ANativeActivity * activity)116 NativeActivity::NativeActivity(ANativeActivity *activity) : m_activity(activity)
117 {
118 activity->instance = (void *)this;
119 activity->callbacks->onStart = onStartCallback;
120 activity->callbacks->onResume = onResumeCallback;
121 activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback;
122 activity->callbacks->onPause = onPauseCallback;
123 activity->callbacks->onStop = onStopCallback;
124 activity->callbacks->onDestroy = onDestroyCallback;
125 activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback;
126 activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback;
127 activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback;
128 activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback;
129 activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback;
130 activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback;
131 activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback;
132 activity->callbacks->onContentRectChanged = onContentRectChangedCallback;
133 activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback;
134 activity->callbacks->onLowMemory = onLowMemoryCallback;
135 }
136
~NativeActivity(void)137 NativeActivity::~NativeActivity(void)
138 {
139 }
140
onStart(void)141 void NativeActivity::onStart(void)
142 {
143 }
144
onResume(void)145 void NativeActivity::onResume(void)
146 {
147 }
148
onSaveInstanceState(size_t * outSize)149 void *NativeActivity::onSaveInstanceState(size_t *outSize)
150 {
151 *outSize = 0;
152 return DE_NULL;
153 }
154
onPause(void)155 void NativeActivity::onPause(void)
156 {
157 }
158
onStop(void)159 void NativeActivity::onStop(void)
160 {
161 }
162
onDestroy(void)163 void NativeActivity::onDestroy(void)
164 {
165 }
166
onWindowFocusChanged(int hasFocus)167 void NativeActivity::onWindowFocusChanged(int hasFocus)
168 {
169 DE_UNREF(hasFocus);
170 }
171
onNativeWindowCreated(ANativeWindow * window)172 void NativeActivity::onNativeWindowCreated(ANativeWindow *window)
173 {
174 DE_UNREF(window);
175 }
176
onNativeWindowResized(ANativeWindow * window)177 void NativeActivity::onNativeWindowResized(ANativeWindow *window)
178 {
179 DE_UNREF(window);
180 }
181
onNativeWindowRedrawNeeded(ANativeWindow * window)182 void NativeActivity::onNativeWindowRedrawNeeded(ANativeWindow *window)
183 {
184 DE_UNREF(window);
185 }
186
onNativeWindowDestroyed(ANativeWindow * window)187 void NativeActivity::onNativeWindowDestroyed(ANativeWindow *window)
188 {
189 DE_UNREF(window);
190 }
191
onInputQueueCreated(AInputQueue * queue)192 void NativeActivity::onInputQueueCreated(AInputQueue *queue)
193 {
194 DE_UNREF(queue);
195 }
196
onInputQueueDestroyed(AInputQueue * queue)197 void NativeActivity::onInputQueueDestroyed(AInputQueue *queue)
198 {
199 DE_UNREF(queue);
200 }
201
onContentRectChanged(const ARect * rect)202 void NativeActivity::onContentRectChanged(const ARect *rect)
203 {
204 DE_UNREF(rect);
205 }
206
onConfigurationChanged(void)207 void NativeActivity::onConfigurationChanged(void)
208 {
209 }
210
onLowMemory(void)211 void NativeActivity::onLowMemory(void)
212 {
213 }
214
finish(void)215 void NativeActivity::finish(void)
216 {
217 ANativeActivity_finish(m_activity);
218 }
219
220 } // namespace Android
221 } // namespace tcu
222