seekabilizer.h

Go to the documentation of this file.
00001 class seekabilizer_backbuffer
00002 {
00003 public:
00004         void initialize(t_size p_size);
00005         void write(const void * p_buffer,t_size p_bytes);
00006         void read(t_size p_backlogdepth,void * p_buffer,t_size p_bytes) const;
00007         t_size get_depth() const;
00008         void reset();
00009         t_size get_max_depth() const;
00010 private:
00011         pfc::array_t<t_uint8> m_buffer;
00012         t_size m_depth,m_cursor;
00013 };
00014 
00015 class seekabilizer : public file_readonly {
00016 public:
00017         void initialize(service_ptr_t<file> p_base,t_size p_buffer_size,abort_callback & p_abort);
00018         
00019         static void g_seekabilize(service_ptr_t<file> & p_reader,t_size p_buffer_size,abort_callback & p_abort);
00020 
00021         t_size read(void * p_buffer,t_size p_bytes,abort_callback & p_abort);
00022         t_filesize get_size(abort_callback & p_abort);
00023         t_filesize get_position(abort_callback & p_abort);
00024         void seek(t_filesize p_position,abort_callback & p_abort);
00025         bool can_seek();
00026         bool get_content_type(pfc::string_base & p_out);
00027         bool is_in_memory();
00028         void on_idle(abort_callback & p_abort);
00029         t_filetimestamp get_timestamp(abort_callback & p_abort);
00030         void reopen(abort_callback & p_abort);
00031         bool is_remote();
00032 private:
00033         service_ptr_t<file> m_file;
00034         seekabilizer_backbuffer m_buffer;
00035         t_filesize m_size,m_position,m_position_base;
00036 };

Generated on Fri Apr 25 18:49:33 2008 for foobar2000 SDK by  doxygen 1.5.5