Lua: Fix type confusion between signed and unsigned
[lsnes.git] / include / core / inthread.hpp
blob8befd89bbbf21b3feba853fd3ac118b910c393f3
1 #ifndef _inthread__hpp__included__
2 #define _inthread__hpp__included__
4 #include <list>
5 #include <cstdint>
6 #include <string>
7 #include "library/command.hpp"
9 class emulator_dispatch;
11 namespace settingvar
13 class group;
16 class voice_commentary
18 public:
19 enum external_stream_format
21 EXTFMT_SOX,
22 EXTFMT_OGGOPUS
25 struct playback_stream_info
27 uint64_t id;
28 uint64_t base;
29 uint64_t length;
32 voice_commentary(settingvar::group& _settings, emulator_dispatch& _dispatch, audioapi_instance& _audio,
33 command::group& _cmd);
34 ~voice_commentary();
35 void init();
36 void kill();
37 void frame_number(uint64_t newframe, double rate);
38 bool collection_loaded();
39 std::list<playback_stream_info> get_stream_info();
40 void play_stream(uint64_t id);
41 void export_stream(uint64_t id, const std::string& filename, external_stream_format fmt);
42 uint64_t import_stream(uint64_t ts, const std::string& filename, external_stream_format fmt);
43 void delete_stream(uint64_t id);
44 void export_superstream(const std::string& filename);
45 void load_collection(const std::string& filename);
46 void unload_collection();
47 void alter_timebase(uint64_t id, uint64_t ts);
48 uint64_t parse_timebase(const std::string& n);
49 double ts_seconds(uint64_t ts);
50 float get_gain(uint64_t id);
51 void set_gain(uint64_t id, float gain);
52 void set_active_flag(bool flag);
53 private:
54 void* internal;
55 settingvar::group& settings;
56 emulator_dispatch& edispatch;
57 audioapi_instance& audio;
58 command::group& cmd;
59 command::_fnptr<> tangentp;
60 command::_fnptr<> tangentr;
63 #endif