diff options
Diffstat (limited to 'plugins/youtube')
-rw-r--r-- | plugins/youtube/YoutubeMediaProxy.hpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/plugins/youtube/YoutubeMediaProxy.hpp b/plugins/youtube/YoutubeMediaProxy.hpp index 28aa6fe..d50d8df 100644 --- a/plugins/youtube/YoutubeMediaProxy.hpp +++ b/plugins/youtube/YoutubeMediaProxy.hpp @@ -2,10 +2,13 @@ #include "../../include/Program.hpp" #include <string> +#include <functional> // TODO: Sync sequence for video and audio (for live stream). namespace QuickMedia { + using ThrottleHandler = std::function<void()>; + class YoutubeMediaProxy { public: enum Error { @@ -29,7 +32,7 @@ namespace QuickMedia { class YoutubeStaticMediaProxy : public YoutubeMediaProxy { public: - YoutubeStaticMediaProxy() = default; + YoutubeStaticMediaProxy(ThrottleHandler throttle_handler = nullptr); YoutubeStaticMediaProxy(YoutubeStaticMediaProxy&) = delete; YoutubeStaticMediaProxy&operator=(YoutubeStaticMediaProxy&) = delete; ~YoutubeStaticMediaProxy(); @@ -65,11 +68,19 @@ namespace QuickMedia { bool download_header_remaining_sent = false; int download_header_written_offset = 0; int download_header_offset_to_end_of_header = 0; + time_t download_start_time = 0; + time_t throttle_start_time = 0; + int64_t total_downloaded_bytes = 0; + bool download_started = false; + bool throttle_started = false; + bool throttle_callback_called = false; + ThrottleHandler throttle_handler = nullptr; bool client_request_finished = false; std::string client_request_buffer; char download_read_buffer[16384]; }; + // TODO: Add throttle detection for live streams class YoutubeLiveStreamMediaProxy : public YoutubeMediaProxy { public: YoutubeLiveStreamMediaProxy() = default; |