annotate foosdk/sdk/foobar2000/helpers/input_stream_info_reader.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 #ifdef FOOBAR2000_DESKTOP
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 template<typename input_t>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 class input_stream_info_reader_impl : public input_stream_info_reader {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 input_t theInput;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 uint32_t get_stream_count() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 return theInput.get_stream_count();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 void get_stream_info(uint32_t index, file_info & out, abort_callback & a) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 theInput.get_stream_info(index, out, a);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 uint32_t get_default_stream() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 return theInput.get_default_stream();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 template<typename input_t>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 class input_stream_info_reader_entry_impl : public input_stream_info_reader_entry {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 input_stream_info_reader::ptr open(const char * path, file::ptr fileHint, abort_callback & abort) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 typedef input_stream_info_reader_impl<input_t> obj_t;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 service_ptr_t<obj_t> p = new service_impl_t<obj_t>();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 p->theInput.open(fileHint, path, input_open_info_read, abort);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 return p;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 GUID get_guid() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 return input_t::g_get_guid();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 #endif // FOOBAR2000_DESKTOP