aboutsummaryrefslogtreecommitdiff
path: root/Src/filereader/HTTPReader.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/filereader/HTTPReader.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/filereader/HTTPReader.h')
-rw-r--r--Src/filereader/HTTPReader.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/Src/filereader/HTTPReader.h b/Src/filereader/HTTPReader.h
new file mode 100644
index 00000000..3afe02ee
--- /dev/null
+++ b/Src/filereader/HTTPReader.h
@@ -0,0 +1,50 @@
+#ifndef NULLSOFT_HTTPREADER_H
+#define NULLSOFT_HTTPREADER_H
+
+#include "api/service/svcs/svc_fileread.h"
+
+class HttpReader;
+
+class HTTPReader : public svc_fileReader
+{
+public:
+ HTTPReader() {}
+ virtual ~HTTPReader() { close(); }
+
+ int isMine( const wchar_t *filename, int mode = SvcFileReader::READ );
+ int open( const wchar_t *filename, int mode = SvcFileReader::READ );
+
+ size_t read( int8_t *buffer, size_t length );
+ size_t write( const int8_t *buffer, size_t length ) { return 0; }
+
+ uint64_t bytesAvailable( uint64_t requested );
+
+ void close();
+ void abort();
+
+ uint64_t getLength();
+ uint64_t getPos();
+
+ int canSeek();
+ int seek( uint64_t position );
+
+ int hasHeaders();
+ const char *getHeader( const char *header );
+
+ void setMetaDataCallback( api_readercallback *cb );
+
+ int canPrefetch() { return 0; } // no info fetch on HTTP files
+
+/*int remove(const char *filename) { return 0; }
+int move(const char *filename, const char *destfilename) { return 0; }*/
+
+protected:
+ RECVS_DISPATCH;
+
+private:
+ HttpReader *reader = NULL;
+ int hasConnected = 0;
+ char *m_filename = 0;
+};
+
+#endif \ No newline at end of file