⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rip.c

📁 手机8032的完整代码。吐血推荐。小做改动就可以生产。
💻 C
📖 第 1 页 / 共 5 页
字号:
      else
      {
        wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 5;
        vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6, wtmpy, wtmpy + 30);
        vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_MENU_COL_BG);
        vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);

        _bRipEntry++;
        wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 5;
        _bNewRipTracknum++;

        vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6, wtmpy, wtmpy + 30);
        vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_BG_HILI_COL);
        vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
      }
      break;

    case ENTRY_TRACK8:
      wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 5;
      vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6, wtmpy, wtmpy + 30);
      vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_MENU_COL_BG);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
      _bRipEntry = ENTRY_SELECT_ALL;
      vSetRipXY(RIP_CENTER_X + 2, RIP_3D4_X - 18,
                RIP_LINE6_STARTY + 2, RIP_MENU_ENDY - 6);
      vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
      break;
    case ENTRY_SPEED:
    case ENTRY_BITRATE:
    case ENTRY_ID3:
      wtmpy = RIP_ENTRY_LEFT_Y + (_bRipEntry - ENTRY_SPEED)*39;
      vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20, wtmpy, wtmpy + 34);
      vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
      _bRipEntry++;
      wtmpy = RIP_ENTRY_LEFT_Y + (_bRipEntry - ENTRY_SPEED)*39;
      vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20, wtmpy, wtmpy + 34);
      vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
      break;

    case ENTRY_USB:
      wtmpy = RIP_ENTRY_LEFT_Y + (_bRipEntry - ENTRY_SPEED)*39;
      vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20, wtmpy, wtmpy + 34);
      vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
      _bRipEntry = ENTRY_START;
      vSetRipXY(2, RIP_1D4_X - 2, RIP_LINE6_STARTY + 2, RIP_MENU_ENDY - 6);
      vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
      break;
    default:
      break;
  }
}


void vOptionsUp(void) large
{
  WORD wtmpy;

  switch(_bRipEntry)
  {
    case ENTRY_TRACK2:
    case ENTRY_TRACK3:
    case ENTRY_TRACK4:
    case ENTRY_TRACK5:
    case ENTRY_TRACK6:
    case ENTRY_TRACK7:
    case ENTRY_TRACK8:
      wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 5;
      _bNewRipTracknum --;
      vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6, wtmpy, wtmpy + 30);
      vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_MENU_COL_BG);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
      _bRipEntry --;
      wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 5;
      vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6, wtmpy, wtmpy + 30);
      vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_BG_HILI_COL);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
      break;

    case ENTRY_TRACK1:
    case ENTRY_SPEED:
      break;

    case ENTRY_BITRATE:
    case ENTRY_ID3:
    case ENTRY_USB:
      wtmpy = RIP_ENTRY_LEFT_Y + (_bRipEntry - ENTRY_SPEED)*39;
      vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20, wtmpy, wtmpy + 34);
      vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
      _bRipEntry --;
      wtmpy = RIP_ENTRY_LEFT_Y + (_bRipEntry - ENTRY_SPEED)*39;
      vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20, wtmpy, wtmpy + 34);
      vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
      break;

    case ENTRY_SELECT_ALL:
    case ENTRY_SELECT_NONE:
      vSetRipXY(RIP_CENTER_X, RIP_MENU_ENDX,
                RIP_LINE6_STARTY, RIP_MENU_ENDY - 4);
      vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
      if(7 + (stct_rip.bRipPageNum - 1) * 6 >= MAX_TRACK_NUM)
      {
        _bRipEntry = ENTRY_TRACK1 + MAX_TRACK_NUM - (stct_rip.bRipPageNum - 1) * 6 - 1;
        _bNewRipTracknum = MAX_TRACK_NUM;
      }
      else
      {
        _bRipEntry = ENTRY_TRACK8;
        _bNewRipTracknum = stct_rip.bRipPageNum * 6 + 1 + 1;
      }
      wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 5;
      vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6, wtmpy, wtmpy + 30);
      vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_BG_HILI_COL);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
      break;

    case ENTRY_START:
    case ENTRY_EXIT:
      vSetRipXY(0, RIP_MENU_ENDX, RIP_LINE6_STARTY, RIP_MENU_ENDY - 4);
      vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
      _bRipEntry = ENTRY_USB;
      wtmpy = RIP_ENTRY_LEFT_Y + (_bRipEntry - ENTRY_SPEED)*39;
      vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20, wtmpy, wtmpy + 34);
      vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
      break;
    default:
      break;
  }
}


void vOptionsEntry(void) large
{
  BYTE bOffsetX, btmp, bBitrate;

  switch(_bRipEntry)
  {
    case ENTRY_TRACK1:
    {
      if(stct_rip.bRipPageNum >  1)
      {
        stct_rip.bRipPageNum --;
        vReDrawTrackList(stct_rip.bRipPageNum, PAGE_UP);
        _bNewRipTracknum++;
      }
      else
        vISShowHook();
      break;
    }

    case ENTRY_TRACK2:
    case ENTRY_TRACK3:
    case ENTRY_TRACK4:
    case ENTRY_TRACK5:
    case ENTRY_TRACK6:
    case ENTRY_TRACK7:
      vISShowHook();
      break;

    case ENTRY_TRACK8:
      stct_rip.bRipPageNum++;
      vReDrawTrackList(stct_rip.bRipPageNum, PAGE_DOWN);
      _bNewRipTracknum --;
      break;

    case ENTRY_SPEED:
      vSetRipXY(RIP_CENTER_X - 125, RIP_CENTER_X - 24,
                RIP_ENTRY_LEFT_Y + 2, RIP_ENTRY_LEFT_Y + 32);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_BG_HILI_COL);
      if(stct_rip.fgHighSpeed == FALSE)
      {
        stct_rip.fgHighSpeed = TRUE;
        vShowMsg(WB_RIP_MENU, OSD_MSG_SPEED_NORMAL + stct_rip.fgHighSpeed,
                RIP_CENTER_X - 103, RIP_ENTRY_LEFT_Y + 2,
                RIP_BG_HILI_COL, RIP_COL_BLUE);
      }
      else
      {
        stct_rip.fgHighSpeed = FALSE;
        vShowMsg(WB_RIP_MENU, OSD_MSG_SPEED_NORMAL + stct_rip.fgHighSpeed,
                RIP_CENTER_X - 125, RIP_ENTRY_LEFT_Y + 2,
                RIP_BG_HILI_COL, RIP_COL_BLUE);
      }
      break;
    case ENTRY_BITRATE:
      if(stct_rip.bRipBitrate == RIP_BITRATE_320kbps)
        stct_rip.bRipBitrate = RIP_BITRATE_96kbps;
      else
      {
        stct_rip.bRipBitrate++;
      }

      if(stct_rip.bRipBitrate < RIP_BITRATE_112kbps)
        bOffsetX = 15;
      else
        bOffsetX = 0;

      vSetRipXY(RIP_CENTER_X - 125, RIP_CENTER_X - 22,
                RIP_ENTRY_LEFT_Y + 41, RIP_ENTRY_LEFT_Y + 71);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_BG_HILI_COL);

      vShowMsg(WB_RIP_MENU, OSD_MSG_96KBPS + (stct_rip.bRipBitrate - RIP_BITRATE_96kbps),
              RIP_CENTER_X - 125 + bOffsetX, RIP_ENTRY_LEFT_Y + 41,
              RIP_BG_HILI_COL, RIP_COL_BLUE);
      switch(stct_rip.bRipBitrate)
      {
        case RIP_BITRATE_96kbps:
          bBitrate = SV_CD_RIP_96K;
          break;
        case RIP_BITRATE_112kbps:
          bBitrate = SV_CD_RIP_112K;
          break;
        case RIP_BITRATE_192kbps:
          bBitrate = SV_CD_RIP_192K;
          break;
        case RIP_BITRATE_256kbps:
          bBitrate = SV_CD_RIP_256K;
          break;
        case RIP_BITRATE_320kbps:
          bBitrate = SV_CD_RIP_320K;
          break;
        default:
          bBitrate = SV_CD_RIP_128K;
          break;
      }
      vSetSharedInfo(SI_CD_RIP_BITRATE, bBitrate);
      vWriteDspSharedBInfo(B_ENC_BITRATE, bBitrate);
      vSetSharedInfo(SI_CD_RIP_PROGRESS, 0);
      break;

    case ENTRY_ID3:
      if(stct_rip.fgRipID3 == FALSE)
      {
        stct_rip.fgRipID3 = TRUE;
        vSetSharedInfo(SI_CD_RIP_ID3, 1);
        vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_YES,
                RIP_CENTER_X - 100, RIP_ENTRY_LEFT_Y + 80,
                RIP_BG_HILI_COL, RIP_COL_BLUE);
      }
      else
      {
        stct_rip.fgRipID3 = FALSE;
        vSetSharedInfo(SI_CD_RIP_ID3, 0);
        vSetRipXY(RIP_CENTER_X - 125, RIP_CENTER_X - 22,
                  RIP_ENTRY_LEFT_Y + 80, RIP_ENTRY_LEFT_Y + 110);
        vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_BG_HILI_COL);

        vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_NO,
                RIP_CENTER_X - 100, RIP_ENTRY_LEFT_Y + 80,
                RIP_BG_HILI_COL, RIP_COL_BLUE);
      }
      break;
    ///////////////////////////////////////

    case ENTRY_USB:
      _bRipSlot++;
      vSetDevice();
      break;

    case ENTRY_START:
      if(_bpRipTrkNum[0] == 0)
        break;
      if(bRipGetUsbNs() == 0)
      {
        stct_rip.bRipError = DEVICE_ERROR;
        vShowRipError();
        break;
      }
      _bRipEntry = ENTRY_NULL;

      vDrawRipping();
      break;

    case ENTRY_SELECT_NONE:
    vISDrawAllHook(FALSE);
    break;

    case ENTRY_SELECT_ALL:
      vISDrawAllHook(TRUE);
      break;
    ////////////////////////////////////////////////////
    case ENTRY_EXIT:
      vExitRipMenu();
      break;

    case ENTRY_CANCEL:
    // kilocmd stop rip
      vSendUopCmd(UOP_STOP, 0, 0, SV_STOP_FORCE);
      vShowRipPage();
      break;

    case ENTRY_REPLACE_OK:
      vDrawReplaceOk();
      break;

    case ENTRY_REPLACE_CANCEL:
      vDrawReplaceCancel();
      break;
    default:
      break;
  }
}


BOOL fgOptionsState(void) large
{
  switch(_bIRKey)
  {
    case IR_LEFT:
      vOptionsLeft();
      _bIRKey = IR_NONE;
      break;

    case IR_RIGHT:
      vOptionsRight();
      _bIRKey = IR_NONE;
      break;

    case IR_UP:
      vOptionsUp();
      _bIRKey = IR_NONE;
      break;

    case IR_DOWN:
      vOptionsDown();
      _bIRKey = IR_NONE;
      break;

    case IR_ENTER:
    case IR_PLAY:
    case IR_PLAY_ENTER:
      vOptionsEntry();
      _bIRKey = IR_NONE;
      break;

    case IR_EJECT:
      if(stct_rip.bRipState == RIP_RIP_START_STATE)
      {
        stct_rip.bRipState = RIP_RIP_EJECT_STATE;
        vSendUopCmd(UOP_STOP, 0, 0, SV_STOP_FORCE);
        _bIRKey = IR_NONE;
      }
      else
      {
        vExitRipMenu();
        stct_rip.bRipState = RIP_RIP_EJECT_STATE;
      }
      break;

    case IR_POWER:
      if(stct_rip.bRipState == RIP_RIP_START_STATE)
      {
        stct_rip.bRipState = RIP_RIP_POWER_STATE;
        vSendUopCmd(UOP_STOP, 0, 0, SV_STOP_FORCE);
        _bIRKey = IR_NONE;
      }
      else
      {
        vExitRipMenu();
        stct_rip.bRipState = RIP_RIP_POWER_STATE;
      }
      break;

    case IR_SUB_TITLE:
      if(stct_rip.bRipState != RIP_RIP_START_STATE)
      {
        //vSendUopCmd(UOP_STOP, 0, 0, SV_STOP_FORCE);
        vExitRipMenu();
      }
      _bIRKey = IR_NONE;
      break;

    default:
      _bIRKey = IR_NONE;
      break;
  }

  return TRUE;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -