tcuAndroidUtil.hpp revision d6df5d1ee6495b60d5452ec035408fcd67c7d291
1#ifndef _TCUANDROIDUTIL_HPP
2#define _TCUANDROIDUTIL_HPP
3/*-------------------------------------------------------------------------
4 * drawElements Quality Program Tester Core
5 * ----------------------------------------
6 *
7 * Copyright 2014 The Android Open Source Project
8 *
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 *      http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 *
21 *//*!
22 * \file
23 * \brief Android utilities.
24 *//*--------------------------------------------------------------------*/
25
26#include "tcuDefs.hpp"
27#include "tcuCommandLine.hpp"
28
29#include <string>
30#include <ostream>
31
32#include <android/native_activity.h>
33
34namespace tcu
35{
36namespace Android
37{
38
39enum ScreenOrientation
40{
41	SCREEN_ORIENTATION_UNSPECIFIED			= 0xffffffff,
42	SCREEN_ORIENTATION_LANDSCAPE			= 0x00000000,
43	SCREEN_ORIENTATION_PORTRAIT				= 0x00000001,
44	SCREEN_ORIENTATION_REVERSE_LANDSCAPE	= 0x00000008,
45	SCREEN_ORIENTATION_REVERSE_PORTRAIT		= 0x00000009
46};
47
48std::string			getIntentStringExtra		(ANativeActivity* activity, const char* name);
49void				setRequestedOrientation		(ANativeActivity* activity, ScreenOrientation orientation);
50
51ScreenOrientation	mapScreenRotation			(ScreenRotation rotation);
52
53void				describePlatform			(ANativeActivity* activity, std::ostream& dst);
54
55bool				hasSystemFeature			(ANativeActivity* activity, const char* name);
56
57//! android.util.DisplayMetrics
58struct DisplayMetrics
59{
60	float		density;
61	float		scaledDensity;
62	int			densityDpi;
63
64	int			widthPixels;
65	int			heightPixels;
66
67	float		xdpi;
68	float		ydpi;
69
70	DisplayMetrics (void)
71		: density		(0.0f)
72		, scaledDensity	(0.0f)
73		, densityDpi	(0)
74		, widthPixels	(0)
75		, heightPixels	(0)
76		, xdpi			(0.0f)
77		, ydpi			(0.0f)
78	{
79	}
80};
81
82DisplayMetrics		getDisplayMetrics			(ANativeActivity* activity);
83
84//! Get minimum required system memory that must be available to kernel and
85//! userspace according to Android CDD.
86size_t				getCDDRequiredSystemMemory	(ANativeActivity* activity);
87
88} // Android
89} // tcu
90
91#endif // _TCUANDROIDUTIL_HPP
92