blob: a74bf5264e96927076eb563c03a957d924645ae8 [file] [log] [blame]
David 'Digit' Turnerf8456272011-02-02 12:34:14 +01001/* Copyright (C) 2011 The Android Open Source Project
2**
3** This software is licensed under the terms of the GNU General Public
4** License version 2, as published by the Free Software Foundation, and
5** may be copied, distributed, and modified under those terms.
6**
7** This program is distributed in the hope that it will be useful,
8** but WITHOUT ANY WARRANTY; without even the implied warranty of
9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10** GNU General Public License for more details.
11*/
12#ifndef ANDROID_MAIN_COMMON_H
13#define ANDROID_MAIN_COMMON_H
14
15#include <stdint.h>
16#include "android/cmdline-option.h"
17#include "android/skin/keyset.h"
David 'Digit' Turner74d7ace2011-02-02 13:21:03 +010018#include "android/config.h"
David 'Digit' Turner2507cab2011-02-10 16:29:17 +010019#include "android/avd/hw-config.h"
David 'Digit' Turnerf8456272011-02-02 12:34:14 +010020
21/* Common routines used by both android/main.c and android/main-ui.c */
22
23/** Emulator user configuration (e.g. last window position)
24 **/
25
David 'Digit' Turner755811e2011-02-07 13:38:25 +010026void user_config_init( void );
27void user_config_done( void );
David 'Digit' Turnerf8456272011-02-02 12:34:14 +010028
David 'Digit' Turner755811e2011-02-07 13:38:25 +010029void user_config_get_window_pos( int *window_x, int *window_y );
David 'Digit' Turnerf8456272011-02-02 12:34:14 +010030
31#define ONE_MB (1024*1024)
32
33unsigned convertBytesToMB( uint64_t size );
34uint64_t convertMBToBytes( unsigned megaBytes );
35
36extern SkinKeyset* android_keyset;
37void parse_keyset(const char* keyset, AndroidOptions* opts);
38void write_default_keyset( void );
39
David 'Digit' Turner092361e2011-03-01 13:14:18 +010040#define NETWORK_SPEED_DEFAULT "full"
41#define NETWORK_DELAY_DEFAULT "none"
42
David 'Digit' Turnerf8456272011-02-02 12:34:14 +010043extern const char* skin_network_speed;
44extern const char* skin_network_delay;
45
David 'Digit' Turner74d7ace2011-02-02 13:21:03 +010046/* Find the skin corresponding to our options, and return an AConfig pointer
47 * and the base path to load skin data from
48 */
49void parse_skin_files(const char* skinDirPath,
50 const char* skinName,
51 AndroidOptions* opts,
David 'Digit' Turner2507cab2011-02-10 16:29:17 +010052 AndroidHwConfig* hwConfig,
David 'Digit' Turner74d7ace2011-02-02 13:21:03 +010053 AConfig* *skinConfig,
54 char* *skinPath);
55
56/* Returns the amount of pixels used by the default display. */
57int64_t get_screen_pixels(AConfig* skinConfig);
58
59void init_sdl_ui(AConfig* skinConfig,
60 const char* skinPath,
61 AndroidOptions* opts);
David 'Digit' Turnerf8456272011-02-02 12:34:14 +010062
Vladimir Chtchetkine83ffd662011-02-11 12:40:59 -080063/* Creates and initializes AvdInfo instance for the given options.
64 * Param:
65 * opts - Options passed to the main()
66 * inAndroidBuild - Upon exit contains 0 if AvdInfo has been initialized from
67 * AVD file, or 1 if AvdInfo has been initialized from the build directory.
68 * Return:
69 * AvdInfo instance initialized for the given options.
70 */
71struct AvdInfo* createAVD(AndroidOptions* opts, int* inAndroidBuild);
72
73/* Updates hardware configuration for the given AVD and options.
74 * Param:
75 * hwConfig - Hardware configuration to update.
76 * avd - AVD info containig paths for the hardware configuration.
77 * opts - Options passed to the main()
78 * inAndroidBuild - 0 if AVD has been initialized from AVD file, or 1 if AVD
79 * has been initialized from the build directory.
80 */
81void updateHwConfigFromAVD(AndroidHwConfig* hwConfig, struct AvdInfo* avd,
82 AndroidOptions* opts, int inAndroidBuild);
83
David 'Digit' Turnerbdb6f2d2011-02-23 15:57:25 +010084/* Called from android/main.c to handle options specific to the standalone
85 * UI program. This is a no-op otherwise.
86 */
87void handle_ui_options( AndroidOptions* opts );
88
89/* Called from android/main.c to potentially attach to a core from the
90 * standalone UI program. This is a no-op otherwise.
91 */
92int attach_ui_to_core( AndroidOptions* opts );
93
David 'Digit' Turnerf8456272011-02-02 12:34:14 +010094#endif /* ANDROID_MAIN_COMMON_H */