From 48a58073dd9bf781a8e2a127e832941332fc8a41 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Tue, 18 May 2004 02:46:13 +0000 Subject: add new inputStream stuff, hopefully something major isn't foobar'd git-svn-id: https://svn.musicpd.org/mpd/trunk@1049 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/inputStream.c | 50 ++++++++++++-------------------------------------- 1 file changed, 12 insertions(+), 38 deletions(-) (limited to 'src/inputStream.c') diff --git a/src/inputStream.c b/src/inputStream.c index 1dea4f271..578749e24 100644 --- a/src/inputStream.c +++ b/src/inputStream.c @@ -18,61 +18,35 @@ #include "inputStream.h" +#include "inputStream_file.h" +#include "inputStream_http.h" + #include #include #include -#include - -int openInputStreamFromFile(InputStream * inStream, char * filename) { - inStream->fp = fopen(filename,"r"); - if(!inStream->fp) { - inStream->error = errno; - return -1; - } - inStream->offset = 0; +int openInputStream(InputStream * inStream, char * url) { + if(inputStream_fileOpen(inStream,url) == 0) return 0; + if(inputStream_httpOpen(inStream,url) == 0) return 0; - fseek(inStream->fp,0,SEEK_END); - inStream->size = ftell(inStream->fp); - fseek(inStream->fp,0,SEEK_SET); - - return 0; + return -1; } int seekInputStream(InputStream * inStream, long offset, int whence) { - if(fseek(inStream->fp,offset,whence)==0) { - inStream->offset = ftell(inStream->fp); - } - else { - inStream->error = errno; - return -1; - } - - return 0; + return inStream->seekFunc(inStream,offset,whence); } size_t readFromInputStream(InputStream * inStream, void * ptr, size_t size, size_t nmemb) { - size_t readSize; - - readSize = fread(ptr,size,nmemb,inStream->fp); - - if(readSize>0) inStream->offset+=readSize; - - return readSize; + return inStream->readFunc(inStream,ptr,size,nmemb); } int closeInputStream(InputStream * inStream) { - if(fclose(inStream->fp)<0) { - inStream->error = errno; - } - else return -1; - - return 0; + return inStream->closeFunc(inStream); } int inputStreamAtEOF(InputStream * inStream) { - return feof(inStream->fp); + return inStream->atEOFFunc(inStream); } -/* vim:set shiftwidth=4 tabstop=8 expandtab: */ +/* vim:set shiftwidth=8 tabstop=8 expandtab: */ -- cgit v1.2.3