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

📄 filereader.cc

📁 Linux下比较早的基于命令行的DVD播放器
💻 CC
字号:
//// Copyright (c) 2005 by Istv醤 V醨adi//// This file is part of dxr3Player, a DVD player written specifically // for the DXR3 (aka Hollywood+) decoder card.// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA//------------------------------------------------------------------------------#include "FileReader.h"#include <cassert>#include <byteswap.h>//------------------------------------------------------------------------------FileReader::FileReader(FILE* file) :    file(file){}//------------------------------------------------------------------------------bool FileReader::read(uint8_t& x){    size_t s = fread(&x, sizeof(x), 1, file);    return s==1;}//------------------------------------------------------------------------------uint8_t FileReader::read8(){    uint8_t x;    bool isok = read(x);    assert(isok);    return x;}//------------------------------------------------------------------------------bool FileReader::read(int8_t& x){    size_t s = fread(&x, sizeof(x), 1, file);    return s==1;}//------------------------------------------------------------------------------int8_t FileReader::readS8(){    int8_t x;    bool isok = read(x);    assert(isok);    return x;}//------------------------------------------------------------------------------bool FileReader::read(uint16_t& x){    size_t s = fread(&x, sizeof(x), 1, file);#ifndef WORDS_BIGENDIAN    x = bswap_16(x);#endif        return s==1;}//------------------------------------------------------------------------------uint16_t FileReader::read16(){    uint16_t x;    bool isok = read(x);    assert(isok);    return x;}//------------------------------------------------------------------------------bool FileReader::read(uint32_t& x){    size_t s = fread(&x, sizeof(x), 1, file);#ifndef WORDS_BIGENDIAN    x = bswap_32(x);#endif        return s==1;}//------------------------------------------------------------------------------uint32_t FileReader::read32(){    uint32_t x;    bool isok = read(x);    assert(isok);    return x;}//------------------------------------------------------------------------------bool FileReader::read(uint64_t& x){    size_t s = fread(&x, sizeof(x), 1, file);#ifndef WORDS_BIGENDIAN    uint32_t* x1 = (uint32_t*)&x;    x1[0] = bswap_32(x1[0]);    x1[1] = bswap_32(x1[1]);    x = x1[1];    x <<= 32;    x |= x1[0];#endif        return s==1;}//------------------------------------------------------------------------------uint64_t FileReader::read64(){    uint64_t x;    bool isok = read(x);    assert(isok);    return x;}//------------------------------------------------------------------------------bool FileReader::read(void* buffer, size_t length){    size_t s = fread(buffer, length, 1, file);    return s==1;}//------------------------------------------------------------------------------

⌨️ 快捷键说明

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