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

📄 iforeader.cc

📁 Linux下比较早的基于命令行的DVD播放器
💻 CC
📖 第 1 页 / 共 2 页
字号:
    vmgiMat.vmgm_pgci_ut = read32();    vmgiMat.ptl_mait = read32();    vmgiMat.vts_atrt = read32();    vmgiMat.txtdt_mgi = read32();    vmgiMat.vmgm_c_adt = read32();    vmgiMat.vmgm_vobu_admap = read32();    read(vmgiMat.zero_6, sizeof(vmgiMat.zero_6));    read(vmgiMat.vmgm_video_attr);    vmgiMat.zero_7 = read8();    vmgiMat.nr_of_vmgm_audio_streams = read8();    read(vmgiMat.vmgm_audio_attr);    read(vmgiMat.zero_8, sizeof(vmgiMat.zero_8));    read(vmgiMat.zero_9, sizeof(vmgiMat.zero_9));    vmgiMat.nr_of_vmgm_subp_streams = read8();    read(vmgiMat.vmgm_subp_attr);    read(vmgiMat.zero_10, sizeof(vmgiMat.zero_10));}//------------------------------------------------------------------------------void IFOReader::read(playback_type_t& playbackType){    read(&playbackType, sizeof(playbackType));}//------------------------------------------------------------------------------void IFOReader::read(title_info_t& titleInfo){    read(titleInfo.pb_ty);    titleInfo.nr_of_angles = read8();    titleInfo.nr_of_ptts = read16();    titleInfo.parental_id = read16();    titleInfo.title_set_nr = read8();    titleInfo.vts_ttn = read8();    titleInfo.title_set_sector = read32();}//------------------------------------------------------------------------------void IFOReader::read(tt_srpt_t& potSPT){    potSPT.zero_1 = read16();    potSPT.last_byte = read32();    title_info_t* title;    potSPT.nr_of_srpts = readArray(title); potSPT.title = title;}//------------------------------------------------------------------------------void IFOReader::read(ptl_mait_country_t& ptlMgmtUnit){    ptlMgmtUnit.country_code = read16();    ptlMgmtUnit.zero_1 = read16();    ptlMgmtUnit.pf_ptl_mai_start_byte = read16();    ptlMgmtUnit.zero_2 = read16();}//------------------------------------------------------------------------------void IFOReader::read(ptl_mait_t& ptlMgmtTable){    ptlMgmtTable.nr_of_vtss = read16();    ptlMgmtTable.last_byte = read32();    ptlMgmtTable.nr_of_countries = read16();    size_t countriesOffset = sizeof(ptl_mait_country_t) * ptlMgmtTable.nr_of_countries;    size_t remainder =         ptlMgmtTable.nr_of_countries * (ptlMgmtTable.nr_of_vtss+1) * 16;    ptlMgmtTable.countries =         (ptl_mait_country_t*)malloc(countriesOffset + remainder);    for(size_t i = 0; i<ptlMgmtTable.nr_of_countries; ++i) {        read(ptlMgmtTable.countries[i]);    }    char* table = reinterpret_cast<char*>(ptlMgmtTable.countries);    read(table+countriesOffset, remainder);}//------------------------------------------------------------------------------void IFOReader::read(vts_attributes_t& vtsAttributes){    vtsAttributes.last_byte = read32();    vtsAttributes.vts_cat = read32();    read(vtsAttributes.vtsm_vobs_attr);    vtsAttributes.zero_1 = read8();    vtsAttributes.nr_of_vtsm_audio_streams = read8();    read(vtsAttributes.vtsm_audio_attr);    read(vtsAttributes.zero_2, sizeof(vtsAttributes.zero_2));    read(vtsAttributes.zero_3, sizeof(vtsAttributes.zero_3));    vtsAttributes.zero_4 = read8();    vtsAttributes.nr_of_vtsm_subp_streams = read8();    read(vtsAttributes.zero_5, sizeof(vtsAttributes.zero_5));        read(vtsAttributes.zero_6, sizeof(vtsAttributes.zero_6));        read(vtsAttributes.vtstt_vobs_video_attr);    vtsAttributes.zero_7 = read8();    vtsAttributes.nr_of_vtstt_audio_streams = read8();    readFixedArray(sizeof(vtsAttributes.vtstt_audio_attr),                   vtsAttributes.vtstt_audio_attr);    read(vtsAttributes.zero_8, sizeof(vtsAttributes.zero_8));    vtsAttributes.zero_9 = read8();    vtsAttributes.nr_of_vtstt_subp_streams = read8();    readFixedArray(sizeof(vtsAttributes.vtstt_subp_attr),                   vtsAttributes.vtstt_subp_attr);}//------------------------------------------------------------------------------void IFOReader::read(vts_atrt_t& vtsAttributeTable){    vtsAttributeTable.zero_1 = read16();    vtsAttributeTable.last_byte = read32();    vts_attributes_t* vts;    vtsAttributeTable.nr_of_vtss = readArray(vts); vtsAttributeTable.vts = vts;}//------------------------------------------------------------------------------void IFOReader::read(txtdt_t& textData){    textData.last_byte = read32();    readFixedArray(sizeof(textData.offsets), textData.offsets);}//------------------------------------------------------------------------------void IFOReader::read(txtdt_lu_t& textDataUnit){    textDataUnit.lang_code = read16();    textDataUnit.unknown = read16();    textDataUnit.txtdt_start_byte = read32();    txtdt_t* txtdt;    readPointer(txtdt); textDataUnit.txtdt = txtdt;}//------------------------------------------------------------------------------void IFOReader::read(txtdt_mgi_t& textDataMGI){    read(textDataMGI.disc_name, sizeof(textDataMGI.disc_name));    textDataMGI.last_byte = read32();    txtdt_lu_t* lu;    textDataMGI.nr_of_language_units = readArray(lu); textDataMGI.lu = lu;}//------------------------------------------------------------------------------void IFOReader::read(vtsi_mat_t& vtsiMAT){    read(vtsiMAT.vts_identifier, sizeof(vtsiMAT.vts_identifier));    vtsiMAT.vts_last_sector = read32();    read(vtsiMAT.zero_1, sizeof(vtsiMAT.zero_1));    vtsiMAT.vtsi_last_sector = read32();    vtsiMAT.zero_2 = read8();    vtsiMAT.specification_version = read8();    vtsiMAT.vts_category = read32();    vtsiMAT.zero_3 = read16();    vtsiMAT.zero_4 = read16();    vtsiMAT.zero_5 = read8();    read(vtsiMAT.zero_6, sizeof(vtsiMAT.zero_6));    vtsiMAT.zero_7 = read16();    read(vtsiMAT.zero_8, sizeof(vtsiMAT.zero_8));    vtsiMAT.zero_9 = read64();    read(vtsiMAT.zero_10, sizeof(vtsiMAT.zero_10));    vtsiMAT.vtsi_last_byte = read32();    vtsiMAT.zero_11 = read32();    read(vtsiMAT.zero_12, sizeof(vtsiMAT.zero_12));    vtsiMAT.vtsm_vobs = read32();    vtsiMAT.vtstt_vobs = read32();    vtsiMAT.vts_ptt_srpt = read32();    vtsiMAT.vts_pgcit = read32();    vtsiMAT.vtsm_pgci_ut = read32();    vtsiMAT.vts_tmapt = read32();    vtsiMAT.vtsm_c_adt = read32();    vtsiMAT.vtsm_vobu_admap = read32();    vtsiMAT.vts_c_adt = read32();    vtsiMAT.vts_vobu_admap = read32();    read(vtsiMAT.zero_13, sizeof(vtsiMAT.zero_13));    read(vtsiMAT.vtsm_video_attr);    vtsiMAT.zero_14 = read8();    vtsiMAT.nr_of_vtsm_audio_streams = read8();    read(vtsiMAT.vtsm_audio_attr);    read(vtsiMAT.zero_15, sizeof(vtsiMAT.zero_15));    read(vtsiMAT.zero_16, sizeof(vtsiMAT.zero_16));    vtsiMAT.nr_of_vtsm_subp_streams = read8();    read(vtsiMAT.vtsm_subp_attr);    read(vtsiMAT.zero_17, sizeof(vtsiMAT.zero_17));    read(vtsiMAT.zero_18, sizeof(vtsiMAT.zero_18));    read(vtsiMAT.vts_video_attr);    vtsiMAT.zero_19 = read8();    vtsiMAT.nr_of_vts_audio_streams = read8();    readFixedArray(sizeof(vtsiMAT.vts_audio_attr), vtsiMAT.vts_audio_attr);    read(vtsiMAT.zero_20, sizeof(vtsiMAT.zero_15));    vtsiMAT.nr_of_vtsm_subp_streams = read8();    readFixedArray(sizeof(vtsiMAT.vts_subp_attr), vtsiMAT.vts_subp_attr);}//------------------------------------------------------------------------------void IFOReader::read(ptt_info_t& pttInfo){    pttInfo.pgcn = read16();    pttInfo.pgn = read16();}//------------------------------------------------------------------------------void IFOReader::read(ttu_t& ttu){    ptt_info_t* ptt;    ttu.nr_of_ptts = readArray(ptt); ttu.ptt = ptt;}//------------------------------------------------------------------------------void IFOReader::read(vts_ptt_srpt_t& pttSPT){    pttSPT.zero_1 = read16();    pttSPT.last_byte = read32();    ttu_t* title;    pttSPT.nr_of_srpts = readArray(title); pttSPT.title = title;}//------------------------------------------------------------------------------void IFOReader::readCommon(ifo_handle_t* ifoHandle){    readPointer(ifoHandle->pgci_ut);    readPointer(ifoHandle->menu_c_adt);    readPointer(ifoHandle->menu_vobu_admap);}//------------------------------------------------------------------------------IFOReader::IFOReader(FILE* f, bool versioned) : Reader<IFOReader>(f){    if (versioned) {        version = read32();    }}//------------------------------------------------------------------------------void IFOReader::readVMG(ifo_handle_t* ifoHandle){    readCommon(ifoHandle);    readPointer(ifoHandle->vmgi_mat);    readPointer(ifoHandle->tt_srpt);    readPointer(ifoHandle->first_play_pgc);    readPointer(ifoHandle->ptl_mait);    readPointer(ifoHandle->vts_atrt);    readPointer(ifoHandle->txtdt_mgi);}//------------------------------------------------------------------------------void IFOReader::readVTS(ifo_handle_t* ifoHandle){    readCommon(ifoHandle);    readPointer(ifoHandle->vtsi_mat);    readPointer(ifoHandle->vts_ptt_srpt);    readPointer(ifoHandle->vts_pgcit);    readPointer(ifoHandle->vts_c_adt);    readPointer(ifoHandle->vts_vobu_admap);}//------------------------------------------------------------------------------

⌨️ 快捷键说明

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