aboutsummaryrefslogtreecommitdiff
path: root/plugins/WatchProgress.hpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-02-18 19:26:23 +0100
committerdec05eba <dec05eba@protonmail.com>2022-02-18 19:26:23 +0100
commitde5fa7773f0393bfab917f8bf8606cb38ba3930e (patch)
treea0c5ec51f87948181797ccd2d3934b4a86c29a00 /plugins/WatchProgress.hpp
parent9301f1da5cf779516131f6bd5ddfc22991601128 (diff)
Refactor watch progress (prepare for global watch progress)
Diffstat (limited to 'plugins/WatchProgress.hpp')
-rw-r--r--plugins/WatchProgress.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/plugins/WatchProgress.hpp b/plugins/WatchProgress.hpp
new file mode 100644
index 0000000..48f549c
--- /dev/null
+++ b/plugins/WatchProgress.hpp
@@ -0,0 +1,26 @@
+#pragma once
+
+#include <stdint.h>
+#include <string>
+#include <unordered_map>
+
+namespace QuickMedia {
+ enum class WatchedStatus {
+ WATCHED,
+ NOT_WATCHED
+ };
+
+ struct WatchProgress {
+ int64_t time_pos_sec = 0;
+ int64_t duration_sec = 0;
+ time_t timestamp = 0;
+ std::string thumbnail_url;
+
+ double get_watch_ratio() const;
+ bool has_finished_watching() const;
+ };
+
+ bool set_watch_progress_for_plugin(const char *plugin_name, const std::string &id, int64_t time_pos_sec, int64_t duration_sec, const std::string &thumbnail_url);
+ std::unordered_map<std::string, WatchProgress> get_watch_progress_for_plugin(const char *plugin_name);
+ bool toggle_watched_for_plugin_save_to_file(const char *plugin_name, const std::string &id, int64_t duration_sec, const std::string &thumbnail_url, WatchedStatus &watched_status);
+} \ No newline at end of file