void android_adb_service_init(void) { static int _inited = 0; if (!adb_server_is_initialized()) { return; } if (!_inited) { /* Register main ADB service. */ QemudService* serv = qemud_service_register(SERVICE_NAME, 0, NULL, _adb_service_connect, NULL, NULL); if (serv == NULL) { derror("%s: Could not register '%s' service", __FUNCTION__, SERVICE_NAME); return; } D("%s: Registered '%s' qemud service", __FUNCTION__, SERVICE_NAME); /* Register debugging ADB service. */ serv = qemud_service_register(DEBUG_SERVICE_NAME, 0, NULL, _adb_debug_service_connect, NULL, NULL); if (serv != NULL) { DD("Registered '%s' qemud service", DEBUG_SERVICE_NAME); } else { dwarning("%s: Could not register '%s' service", __FUNCTION__, DEBUG_SERVICE_NAME); } } }
/* set the character driver state for a given qemud communication channel. this * is used to attach the channel to an external char driver device directly. * returns 0 on success, -1 on error */ int android_qemud_set_channel( const char* name, CharDriverState* peer_cs ) { CharDriverState* char_buffer = qemu_chr_open_buffer(peer_cs); if (char_buffer == NULL) return -1; qemud_service_register(name, 1, char_buffer, _qemud_char_service_connect); return 0; }
/* returns a charpipe endpoint that can be used by an emulated * device or external serial port to implement a char. service */ int android_qemud_get_channel( const char* name, CharDriverState* *pcs ) { CharDriverState* cs; if (qemu_chr_open_charpipe(&cs, pcs) < 0) { derror("can't open charpipe for '%s' qemud service", name); exit(2); } qemud_service_register(name, 1, cs, _qemud_char_service_connect); return 0; }
static void hw_control_init( HwControl* control, void* client, const AndroidHwControlFuncs* client_funcs ) { control->client = client; control->client_funcs = client_funcs[0]; control->service = qemud_service_register( "hw-control", 0, control, _hw_control_qemud_connect, NULL, NULL); }
/* initialize the sensors state */ static void _hwSensors_init( HwSensors* h ) { h->service = qemud_service_register("sensors", 0, h, _hwSensors_connect, _hwSensors_save, _hwSensors_load); if (android_hw->hw_accelerometer) h->sensors[ANDROID_SENSOR_ACCELERATION].enabled = 1; /* XXX: TODO: Add other tests when we add the corresponding * properties to hardware-properties.ini et al. */ _hwSensors_setCoarseOrientation(h, ANDROID_COARSE_PORTRAIT); }
void boot_property_init_service( void ) { if (!_inited) { QemudService* serv = qemud_service_register( SERVICE_NAME, 1, NULL, boot_property_service_connect, boot_property_save, boot_property_load); if (serv == NULL) { derror("could not register '%s' service", SERVICE_NAME); return; } D("registered '%s' qemud service", SERVICE_NAME); } }
/* initialize the sensors state */ static void _hwSensors_init( HwSensors* h ) { /* Try to see if there is a device attached that can be used for * sensor emulation. */ h->sensors_port = sensors_port_create(h); if (h->sensors_port == NULL) { V("Realistic sensor emulation is not available, since the remote controller is not accessible:\n %s", strerror(errno)); } h->service = qemud_service_register("sensors", 0, h, _hwSensors_connect, _hwSensors_save, _hwSensors_load); if (android_hw->hw_accelerometer) { h->sensors[ANDROID_SENSOR_ACCELERATION].enabled = 1; } if (android_hw->hw_sensors_proximity) { h->sensors[ANDROID_SENSOR_PROXIMITY].enabled = 1; } if (android_hw->hw_sensors_magnetic_field) { h->sensors[ANDROID_SENSOR_MAGNETIC_FIELD].enabled = 1; } if (android_hw->hw_sensors_orientation) { h->sensors[ANDROID_SENSOR_ORIENTATION].enabled = 1; } if (android_hw->hw_sensors_temperature) { h->sensors[ANDROID_SENSOR_TEMPERATURE].enabled = 1; } if (h->sensors_port != NULL) { /* Init sensors on the attached device. */ sensors_port_init_sensors(h->sensors_port); } /* XXX: TODO: Add other tests when we add the corresponding * properties to hardware-properties.ini et al. */ _hwSensors_setCoarseOrientation(h, ANDROID_COARSE_PORTRAIT); _hwSensors_setProximity(h, 1); }
void android_camera_service_init(void) { static int _inited = 0; if (!_inited) { _camera_service_init(&_camera_service_desc); QemudService* serv = qemud_service_register( SERVICE_NAME, 0, &_camera_service_desc, _camera_service_connect, NULL, NULL); if (serv == NULL) { derror("%s: Could not register '%s' service", __FUNCTION__, SERVICE_NAME); return; } D("%s: Registered '%s' qemud service", __FUNCTION__, SERVICE_NAME); } }