#ifndef _MODULES_TORRENT_HPP_ #define _MODULES_TORRENT_HPP_ #include "modules/base.hpp" #include "drawtypes/bar.hpp" #include "drawtypes/label.hpp" namespace modules { struct Torrent { std::string title; unsigned long data_total; unsigned long data_downloaded; unsigned long data_remaining; float perc_downloaded; std::unique_ptr<drawtypes::Label> label_tokenized; }; DefineModule(TorrentModule, InotifyModule) { const char *TAG_LABEL = "<label>"; const char *TAG_BAR_PROGRESS = "<bar:progress>"; std::vector<std::unique_ptr<Torrent>> torrents; std::unique_ptr<drawtypes::Label> label; std::unique_ptr<drawtypes::Label> label_tokenized; std::unique_ptr<drawtypes::Bar> bar; std::string pipe_cmd; std::vector<std::unique_ptr<Torrent>> &read_data_into(std::vector<std::unique_ptr<Torrent>> &container); public: TorrentModule(const std::string& name); void start(); bool on_event(InotifyEvent *event); bool build(Builder *builder, const std::string& tag); }; } #endif