1 #pragma once
2 
3 #include "modules/meta/timer_module.hpp"
4 #include "settings.hpp"
5 
6 POLYBAR_NS
7 
8 namespace modules {
9   enum class memtype { NONE = 0, TOTAL, USED, FREE, SHARED, BUFFERS, CACHE, AVAILABLE };
10 
11   class memory_module : public timer_module<memory_module> {
12    public:
13     explicit memory_module(const bar_settings&, string);
14 
15     bool update();
16     bool build(builder* builder, const string& tag) const;
17 
18     static constexpr auto TYPE = "internal/memory";
19 
20    private:
21     static constexpr const char* TAG_LABEL{"<label>"};
22     static constexpr const char* TAG_BAR_USED{"<bar-used>"};
23     static constexpr const char* TAG_BAR_FREE{"<bar-free>"};
24     static constexpr const char* TAG_RAMP_USED{"<ramp-used>"};
25     static constexpr const char* TAG_RAMP_FREE{"<ramp-free>"};
26     static constexpr const char* TAG_BAR_SWAP_USED{"<bar-swap-used>"};
27     static constexpr const char* TAG_BAR_SWAP_FREE{"<bar-swap-free>"};
28     static constexpr const char* TAG_RAMP_SWAP_USED{"<ramp-swap-used>"};
29     static constexpr const char* TAG_RAMP_SWAP_FREE{"<ramp-swap-free>"};
30 
31     label_t m_label;
32     progressbar_t m_bar_memused;
33     progressbar_t m_bar_memfree;
34     int m_perc_memused{0};
35     int m_perc_memfree{0};
36     ramp_t m_ramp_memused;
37     ramp_t m_ramp_memfree;
38     progressbar_t m_bar_swapused;
39     progressbar_t m_bar_swapfree;
40     int m_perc_swap_used{0};
41     int m_perc_swap_free{0};
42     ramp_t m_ramp_swapused;
43     ramp_t m_ramp_swapfree;
44   };
45 }  // namespace modules
46 
47 POLYBAR_NS_END
48