예제 #1
0
  void SetMode(int32_t aMode)
  {
    if ((aMode == AUTOMOUNTER_DISABLE_WHEN_UNPLUGGED) &&
        (mMode == AUTOMOUNTER_DISABLE)) {
      // If it's already disabled, then leave it as disabled.
      // AUTOMOUNTER_DISABLE_WHEN_UNPLUGGED implies "enabled until unplugged"
      aMode = AUTOMOUNTER_DISABLE;
    }

    if ((aMode == AUTOMOUNTER_DISABLE) &&
        (mMode == AUTOMOUNTER_ENABLE) && IsUsbCablePluggedIn()) {
      // On many devices (esp non-Samsung), we can't force the disable, so we
      // need to defer until the USB cable is actually unplugged.
      // See bug 777043.
      //
      // Otherwise our attempt to disable it will fail, and we'll wind up in a bad
      // state where the AutoMounter thinks that Sharing has been turned off, but
      // the files are actually still being Shared because the attempt to unshare
      // failed.
      LOG("Attempting to disable UMS. Deferring until USB cable is unplugged.");
      aMode = AUTOMOUNTER_DISABLE_WHEN_UNPLUGGED;
    }

    if (aMode != mMode) {
      LOG("Changing mode from '%s' to '%s'", ModeStr(mMode), ModeStr(aMode));
      mMode = aMode;
      DBG("Calling UpdateState due to mode set to %d", mMode);
      UpdateState();
    }
  }
예제 #2
0
// DumpToDebugDisplay --------------------------------------------------------------------------------------
// ------------------
void plAvBrainClimb::DumpToDebugDisplay(int &x, int &y, int lineHeight, plDebugText &debugTxt)
{
    debugTxt.DrawString(x, y, "Brain type: Climb");
    y += lineHeight;
    const char * worldDir = WorldDirStr(fDesiredDirection);
    const char * modeStr = ModeStr(fCurMode);

    char buffy[256];
    sprintf(buffy, "direction: %s mode: %s controlDir: %f", worldDir, modeStr, fControlDir);
    debugTxt.DrawString(x,y, buffy);
    y += lineHeight;
    
    IDumpClimbDirections(x, y, lineHeight, debugTxt);
    IDumpDismountDirections(x, y, lineHeight, debugTxt);
    IDumpBlockedDirections(x, y, lineHeight, debugTxt);

    fUp->DumpDebug(fUp == fCurStage, x, y, lineHeight, debugTxt);
    fDown->DumpDebug(fDown == fCurStage, x, y, lineHeight, debugTxt);
    fLeft->DumpDebug(fLeft == fCurStage, x, y, lineHeight, debugTxt);
    fRight->DumpDebug(fRight == fCurStage, x, y, lineHeight, debugTxt);
    fMountUp->DumpDebug(fMountUp == fCurStage, x, y, lineHeight, debugTxt);
    fMountDown->DumpDebug(fMountDown == fCurStage, x, y, lineHeight, debugTxt);
    fMountLeft->DumpDebug(fMountLeft == fCurStage, x, y, lineHeight, debugTxt);
    fMountRight->DumpDebug(fMountRight == fCurStage, x, y, lineHeight, debugTxt);
    fDismountUp->DumpDebug(fDismountUp == fCurStage, x, y, lineHeight, debugTxt);
    fDismountDown->DumpDebug(fDismountDown == fCurStage, x, y, lineHeight, debugTxt);
    fDismountLeft->DumpDebug(fDismountLeft == fCurStage, x, y, lineHeight, debugTxt);
    fDismountRight->DumpDebug(fDismountRight == fCurStage, x, y, lineHeight, debugTxt);
    fIdle->DumpDebug(fIdle == fCurStage, x, y, lineHeight, debugTxt);
    fRelease->DumpDebug(fRelease == fCurStage, x, y, lineHeight, debugTxt);
    fFallOff->DumpDebug(fFallOff == fCurStage, x, y, lineHeight, debugTxt);

}