13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#ifndef _TCUANDROIDUTIL_HPP
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define _TCUANDROIDUTIL_HPP
33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*-------------------------------------------------------------------------
43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program Tester Core
53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * ----------------------------------------
63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project
83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License");
103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License.
113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at
123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *      http://www.apache.org/licenses/LICENSE-2.0
143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software
163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS,
173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and
193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License.
203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*!
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file
233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief Android utilities.
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuDefs.hpp"
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuCommandLine.hpp"
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <string>
304ca810727d8a06a57daf1cc9d0712284a858a40aPyry Haulos#include <ostream>
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <android/native_activity.h>
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace tcu
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace Android
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyryenum ScreenOrientation
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
412dac2cccd65e5f837c3433c73c54790e6d0903d3Pyry Haulos	SCREEN_ORIENTATION_UNSPECIFIED			= 0xffffffff,
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	SCREEN_ORIENTATION_LANDSCAPE			= 0x00000000,
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	SCREEN_ORIENTATION_PORTRAIT				= 0x00000001,
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	SCREEN_ORIENTATION_REVERSE_LANDSCAPE	= 0x00000008,
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	SCREEN_ORIENTATION_REVERSE_PORTRAIT		= 0x00000009
463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
483c827367444ee418f129b2c238299f49d3264554Jarkko Poyrystd::string			getIntentStringExtra		(ANativeActivity* activity, const char* name);
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid				setRequestedOrientation		(ANativeActivity* activity, ScreenOrientation orientation);
503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
513c827367444ee418f129b2c238299f49d3264554Jarkko PoyryScreenOrientation	mapScreenRotation			(ScreenRotation rotation);
523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
534ca810727d8a06a57daf1cc9d0712284a858a40aPyry Haulosvoid				describePlatform			(ANativeActivity* activity, std::ostream& dst);
544ca810727d8a06a57daf1cc9d0712284a858a40aPyry Haulos
55d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulosbool				hasSystemFeature			(ANativeActivity* activity, const char* name);
56d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos
57d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos//! android.util.DisplayMetrics
58d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulosstruct DisplayMetrics
59d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos{
60d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	float		density;
61d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	float		scaledDensity;
62d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	int			densityDpi;
63d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos
64d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	int			widthPixels;
65d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	int			heightPixels;
66d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos
67d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	float		xdpi;
68d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	float		ydpi;
69d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos
70d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	DisplayMetrics (void)
71d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos		: density		(0.0f)
72d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos		, scaledDensity	(0.0f)
73d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos		, densityDpi	(0)
74d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos		, widthPixels	(0)
75d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos		, heightPixels	(0)
76d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos		, xdpi			(0.0f)
77d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos		, ydpi			(0.0f)
78d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	{
79d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos	}
80d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos};
81d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos
82d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry HaulosDisplayMetrics		getDisplayMetrics			(ANativeActivity* activity);
83d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos
84d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos//! Get minimum required system memory that must be available to kernel and
85d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos//! userspace according to Android CDD.
86d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulossize_t				getCDDRequiredSystemMemory	(ANativeActivity* activity);
87d6df5d1ee6495b60d5452ec035408fcd67c7d291Pyry Haulos
883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // Android
893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // tcu
903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif // _TCUANDROIDUTIL_HPP
92