1 #pragma once
2 
3 #include <json/json.h>
4 #ifdef HAVE_LIBDATE
5 #include "modules/clock.hpp"
6 #else
7 #include "modules/simpleclock.hpp"
8 #endif
9 #ifdef HAVE_SWAY
10 #include "modules/sway/mode.hpp"
11 #include "modules/sway/window.hpp"
12 #include "modules/sway/workspaces.hpp"
13 #include "modules/sway/language.hpp"
14 #endif
15 #ifdef HAVE_WLR
16 #include "modules/wlr/taskbar.hpp"
17 #include "modules/wlr/workspace_manager.hpp"
18 #endif
19 #ifdef HAVE_RIVER
20 #include "modules/river/tags.hpp"
21 #endif
22 #if defined(__linux__) && !defined(NO_FILESYSTEM)
23 #include "modules/battery.hpp"
24 #endif
25 #if defined(HAVE_CPU_LINUX) || defined(HAVE_CPU_BSD)
26 #include "modules/cpu.hpp"
27 #endif
28 #include "modules/idle_inhibitor.hpp"
29 #if defined(HAVE_MEMORY_LINUX) || defined(HAVE_MEMORY_BSD)
30 #include "modules/memory.hpp"
31 #endif
32 #include "modules/disk.hpp"
33 #ifdef HAVE_DBUSMENU
34 #include "modules/sni/tray.hpp"
35 #endif
36 #ifdef HAVE_LIBNL
37 #include "modules/network.hpp"
38 #endif
39 #ifdef HAVE_LIBUDEV
40 #include "modules/backlight.hpp"
41 #endif
42 #ifdef HAVE_LIBEVDEV
43 #include "modules/keyboard_state.hpp"
44 #endif
45 #ifdef HAVE_LIBPULSE
46 #include "modules/pulseaudio.hpp"
47 #endif
48 #ifdef HAVE_LIBMPDCLIENT
49 #include "modules/mpd/mpd.hpp"
50 #endif
51 #ifdef HAVE_LIBSNDIO
52 #include "modules/sndio.hpp"
53 #endif
54 #ifdef HAVE_GIO_UNIX
55 #include "modules/inhibitor.hpp"
56 #endif
57 #include "bar.hpp"
58 #include "modules/custom.hpp"
59 #include "modules/temperature.hpp"
60 #if defined(__linux__)
61 #  ifdef WANT_RFKILL
62 #    include "modules/bluetooth.hpp"
63 #  endif
64 #endif
65 
66 namespace waybar {
67 
68 class Factory {
69  public:
70   Factory(const Bar& bar, const Json::Value& config);
71   AModule* makeModule(const std::string& name) const;
72 
73  private:
74   const Bar&         bar_;
75   const Json::Value& config_;
76 };
77 
78 }  // namespace waybar
79