Mercurial > foo_out_sdl
comparison foosdk/sdk/foobar2000/helpers/seekabilizer.h @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:e9bb126753e7 | 1:20d02a178406 |
|---|---|
| 1 #pragma once | |
| 2 | |
| 3 class seekabilizer_backbuffer | |
| 4 { | |
| 5 public: | |
| 6 void initialize(t_size p_size); | |
| 7 void write(const void * p_buffer,t_size p_bytes); | |
| 8 void read(t_size p_backlogdepth,void * p_buffer,t_size p_bytes) const; | |
| 9 t_size get_depth() const; | |
| 10 void reset(); | |
| 11 t_size get_max_depth() const; | |
| 12 private: | |
| 13 pfc::array_t<t_uint8> m_buffer; | |
| 14 t_size m_depth,m_cursor; | |
| 15 }; | |
| 16 | |
| 17 class seekabilizer : public file_readonly_t<file_v2> { | |
| 18 public: | |
| 19 void initialize(service_ptr_t<file> p_base,t_size p_buffer_size,abort_callback & p_abort); | |
| 20 | |
| 21 static void g_seekabilize(service_ptr_t<file> & p_reader,t_size p_buffer_size,abort_callback & p_abort); | |
| 22 | |
| 23 t_size read(void * p_buffer,t_size p_bytes,abort_callback & p_abort); | |
| 24 t_filesize get_size(abort_callback & p_abort); | |
| 25 t_filesize get_position(abort_callback & p_abort); | |
| 26 void seek(t_filesize p_position,abort_callback & p_abort); | |
| 27 bool can_seek(); | |
| 28 bool get_content_type(pfc::string_base & p_out); | |
| 29 bool is_in_memory(); | |
| 30 void on_idle(abort_callback & p_abort); | |
| 31 t_filetimestamp get_timestamp(abort_callback & p_abort); | |
| 32 void reopen(abort_callback & p_abort); | |
| 33 bool is_remote(); | |
| 34 | |
| 35 service_ptr get_metadata(abort_callback&); | |
| 36 t_filestats2 get_stats2(uint32_t s2flags, abort_callback&); | |
| 37 size_t lowLevelIO(const GUID& guid, size_t arg1, void* arg2, size_t arg2size, abort_callback& abort); | |
| 38 private: | |
| 39 service_ptr_t<file> m_file; | |
| 40 seekabilizer_backbuffer m_buffer; | |
| 41 t_filesize m_size,m_position,m_position_base; | |
| 42 }; |
