From e2de64d6f1beb9e492daf5b886e19933c1fa41dd Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdemultimedia@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- mpeglib/lib/util/file/fileAccess.cpp | 95 ++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 mpeglib/lib/util/file/fileAccess.cpp (limited to 'mpeglib/lib/util/file/fileAccess.cpp') diff --git a/mpeglib/lib/util/file/fileAccess.cpp b/mpeglib/lib/util/file/fileAccess.cpp new file mode 100644 index 00000000..8eab864f --- /dev/null +++ b/mpeglib/lib/util/file/fileAccess.cpp @@ -0,0 +1,95 @@ +/* + simple file access interface. + Copyright (C) 2001 Martin Vogt + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Library General Public License as published by + the Free Software Foundation. + + For more information look at the file COPYRIGHT in this package + + */ + + + +#include "fileAccess.h" + + +FileAccess::FileAccess() { + file=NULL; + length=0; +} + + +FileAccess::~FileAccess() { + close(); +} + + +int FileAccess::open(const char* path) { + close(); + file=fopen(path,"rb"); + length=calcByteLength(); + return (file != NULL); +} + + +void FileAccess::close() { + if (file != NULL) { + fclose(file); + file=NULL; + length=0; + } +} + + +int FileAccess::read(char* dest,int len) { + int back=0; + if (file != NULL) { + back=fread(dest,1,len,file); + } else { + printf("FileAccess::read not open\n"); + } + return back; +} + +int FileAccess::eof() { + int back=true; + if (file != NULL) { + back=feof(file); + } + return back; +} + + +int FileAccess::seek(long pos) { + if (file == NULL) { + return -1; + } + return fseek(file,pos,SEEK_SET); +} + + +long FileAccess::getBytePosition() { + if (file == NULL) { + return 0; + } + return ftell(file); +} + + +long FileAccess::getByteLength() { + return length; +} + +long FileAccess::calcByteLength() { + if (file == NULL) { + return 0; + } + long pos=getBytePosition(); + fseek(file,0,SEEK_END); + long back=getBytePosition(); + fseek(file,pos,SEEK_SET); + return back; +} + -- cgit v1.2.3