コード例 #1
0
ファイル: connection.c プロジェクト: Aym3nTN/ioio
static void ConnADBTasks() {
  int res;

  if (!ADBAttached()) {
    adb_state = STATE_ADB_DISCONNECTED;
    return;
  }

  switch (adb_state) {
    case STATE_ADB_DISCONNECTED:
      if (ADBAttached()) {
        ADBInit();
        ADBFileInit();
        adb_state = STATE_ADB_INITIALIZING;
      }
      break;

    case STATE_ADB_INITIALIZING:
    case STATE_ADB_INITIALIZED:
      res = ADBTasks();
      if (res == -1) {
        log_printf("Error occured. Resetting Android USB.");
        USBHostAndroidReset();
        break;
      }
      if (res == 1) {
        ADBFileTasks();
        adb_state = STATE_ADB_INITIALIZED;
      } else if (res == 0) {
        adb_state = STATE_ADB_INITIALIZING;
      }
      break;
  }
}
コード例 #2
0
ファイル: connection.c プロジェクト: Aym3nTN/ioio
void ConnAccessoryTasks() {
  switch (acc_state) {
    case STATE_ACC_DISCONNECTED:
      if (USBHostAndroidIsInterfaceAttached(ANDROID_INTERFACE_ACC)) {
        AccessoryInit(buf, BUF_SIZE);
        acc_state = STATE_ACC_INITIALIZING;
      }
      break;

    case STATE_ACC_INITIALIZING:
    case STATE_ACC_INITIALIZED:
      if (!USBHostAndroidIsInterfaceAttached(ANDROID_INTERFACE_ACC)) {
        AccessoryShutdown();
        acc_state = STATE_ACC_DISCONNECTED;
      } else {
        int res = AccessoryTasks();
        if (res == -1) {
          log_printf("Error occured. Resetting Android USB.");
          USBHostAndroidReset();
          break;
        }
        acc_state = res ? STATE_ACC_INITIALIZED : STATE_ACC_INITIALIZING;
      }
  }
}
コード例 #3
0
ファイル: accessory.c プロジェクト: huleg/android-pic32
int AccessoryCanWrite(CHANNEL_HANDLE h) {
  BYTE err;
  assert(h == 0);
  assert(channel_state <= CHANNEL_OPEN);
  if (channel_state != CHANNEL_OPEN) return 0;
  int res = USBHostAndroidTxIsComplete(&err, ANDROID_INTERFACE_ACC);
  if (res && err != USB_SUCCESS) {
    log_printf("Write failed with error code %d", err);
    USBHostAndroidReset();
  }
  return res;
}