31 lines
861 B
C
31 lines
861 B
C
|
#pragma once
|
||
|
#include "../nsavi/avi_reader.h"
|
||
|
#include "../../..\Components\wac_network\wac_network_http_receiver_api.h"
|
||
|
|
||
|
class AVIReaderHTTP : public nsavi::avi_reader
|
||
|
{
|
||
|
public:
|
||
|
AVIReaderHTTP(HANDLE killswitch, HANDLE seek_event);
|
||
|
int Open(const wchar_t *url);
|
||
|
void Close();
|
||
|
int Connect();
|
||
|
int Buffer();
|
||
|
|
||
|
/* avi_reader implementation */
|
||
|
int Read(void *buffer, uint32_t read_length, uint32_t *bytes_read);
|
||
|
int Peek(void *buffer, uint32_t read_length, uint32_t *bytes_read);
|
||
|
//void OverlappedHint(uint32_t read_length);
|
||
|
int Seek(uint64_t position);
|
||
|
uint64_t Tell();
|
||
|
int Skip(uint32_t skip_bytes);
|
||
|
uint64_t GetContentLength();
|
||
|
void GetFilename(wchar_t *fn, size_t len);
|
||
|
private:
|
||
|
/* internal methods */
|
||
|
int Open(const char *url, uint64_t start_offset=0);
|
||
|
private:
|
||
|
api_httpreceiver *http;
|
||
|
uint64_t position;
|
||
|
bool seekable;
|
||
|
HANDLE handles[2];
|
||
|
};
|