| #include "sysdeps.h" |
| #include "adb.h" |
| #include "adb_client.h" |
| #include <stdio.h> |
| |
| static int connect_to_console(void) |
| { |
| int fd, port; |
| |
| port = adb_get_emulator_console_port(); |
| if (port < 0) { |
| if (port == -2) |
| fprintf(stderr, "error: more than one emulator detected. use -s option\n"); |
| else |
| fprintf(stderr, "error: no emulator detected\n"); |
| return -1; |
| } |
| fd = socket_loopback_client( port, SOCK_STREAM ); |
| if (fd < 0) { |
| fprintf(stderr, "error: could not connect to TCP port %d\n", port); |
| return -1; |
| } |
| return fd; |
| } |
| |
| |
| int adb_send_emulator_command(int argc, const char** argv) |
| { |
| int fd, nn; |
| |
| fd = connect_to_console(); |
| if (fd < 0) |
| return 1; |
| |
| #define QUIT "quit\n" |
| |
| for (nn = 1; nn < argc; nn++) { |
| adb_write( fd, argv[nn], strlen(argv[nn]) ); |
| adb_write( fd, (nn == argc-1) ? "\n" : " ", 1 ); |
| } |
| adb_write( fd, QUIT, sizeof(QUIT)-1 ); |
| adb_close(fd); |
| |
| return 0; |
| } |