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/Makefile.am | 25 ++++++++++ mpeglib/lib/util/file/fileAccess.cpp | 95 ++++++++++++++++++++++++++++++++++++ mpeglib/lib/util/file/fileAccess.h | 46 +++++++++++++++++ 3 files changed, 166 insertions(+) create mode 100644 mpeglib/lib/util/file/Makefile.am create mode 100644 mpeglib/lib/util/file/fileAccess.cpp create mode 100644 mpeglib/lib/util/file/fileAccess.h (limited to 'mpeglib/lib/util/file') diff --git a/mpeglib/lib/util/file/Makefile.am b/mpeglib/lib/util/file/Makefile.am new file mode 100644 index 00000000..96b16fff --- /dev/null +++ b/mpeglib/lib/util/file/Makefile.am @@ -0,0 +1,25 @@ +# libsplay - Makefile.am + + +INCLUDES = $(all_includes) + +noinst_LTLIBRARIES = libsimplefile.la + +noinst_HEADERS = fileAccess.h + +kmpgincludedir = $(includedir)/$(THIS_LIB_NAME)/util/file + +kmpginclude_HEADERS = fileAccess.h + + +libsimplefile_la_SOURCES = 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; +} + diff --git a/mpeglib/lib/util/file/fileAccess.h b/mpeglib/lib/util/file/fileAccess.h new file mode 100644 index 00000000..d9bf9e2e --- /dev/null +++ b/mpeglib/lib/util/file/fileAccess.h @@ -0,0 +1,46 @@ +/* + 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 + + */ + +#ifndef __FILEACCESS_H +#define __FILEACCESS_H + + +#include "stdio.h" + +/** + Extension to the normal "read" function. + This interface is useful for the AudioInfo. +*/ + +class FileAccess { + + FILE* file; + long length; + + public: + FileAccess(); + virtual ~FileAccess(); + + virtual int open(const char* file); + virtual void close(); + virtual int read(char* dest,int len); + virtual int eof(); + virtual int seek(long pos); + virtual long getBytePosition(); + virtual long getByteLength(); + + private: + long calcByteLength(); + +}; +#endif + -- cgit v1.2.1