main-common.h revision 25eb6557b94da066d6e137c07aeced39badf5aa6
1/* 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" 18#include "android/config.h" 19#include "android/avd/hw-config.h" 20 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 26void user_config_init( void ); 27void user_config_done( void ); 28 29void user_config_get_window_pos( int *window_x, int *window_y ); 30 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 40#define NETWORK_SPEED_DEFAULT "full" 41#define NETWORK_DELAY_DEFAULT "none" 42 43extern const char* skin_network_speed; 44extern const char* skin_network_delay; 45 46/* 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, 52 AndroidHwConfig* hwConfig, 53 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); 62 63/* Sanitize options. This deals with a few legacy options that are now 64 * handled differently. Call before anything else that needs to read 65 * the options list. 66 */ 67void sanitizeOptions( AndroidOptions* opts ); 68 69/* Creates and initializes AvdInfo instance for the given options. 70 * Param: 71 * opts - Options passed to the main() 72 * inAndroidBuild - Upon exit contains 0 if AvdInfo has been initialized from 73 * AVD file, or 1 if AvdInfo has been initialized from the build directory. 74 * Return: 75 * AvdInfo instance initialized for the given options. 76 */ 77struct AvdInfo* createAVD(AndroidOptions* opts, int* inAndroidBuild); 78 79/* Populate the hwConfig fields corresponding to the kernel/disk images 80 * used by the emulator. This will zero *hwConfig first. 81 */ 82void findImagePaths( AndroidHwConfig* hwConfig, 83 AndroidOptions* opts ); 84 85/* Updates hardware configuration for the given AVD and options. 86 * Param: 87 * hwConfig - Hardware configuration to update. 88 * avd - AVD info containig paths for the hardware configuration. 89 * opts - Options passed to the main() 90 * inAndroidBuild - 0 if AVD has been initialized from AVD file, or 1 if AVD 91 * has been initialized from the build directory. 92 */ 93void updateHwConfigFromAVD(AndroidHwConfig* hwConfig, struct AvdInfo* avd, 94 AndroidOptions* opts, int inAndroidBuild); 95 96/* Called from android/main.c to handle options specific to the standalone 97 * UI program. This is a no-op otherwise. 98 */ 99void handle_ui_options( AndroidOptions* opts ); 100 101/* Called from android/main.c to potentially attach to a core from the 102 * standalone UI program. This is a no-op otherwise. 103 */ 104int attach_ui_to_core( AndroidOptions* opts ); 105 106#endif /* ANDROID_MAIN_COMMON_H */ 107