]> git.sesse.net Git - nageru/blobdiff - theme.h
Make signal mapping changeable by right-clicking on the preview.
[nageru] / theme.h
diff --git a/theme.h b/theme.h
index a3bc8ea16844439f1d25bf988238701d87448e64..660a2cd7962024a767230bfb9c49735ed8bb94fd 100644 (file)
--- a/theme.h
+++ b/theme.h
@@ -40,6 +40,7 @@ public:
 class Theme {
 public:
        Theme(const char *filename, movit::ResourcePool *resource_pool, unsigned num_cards);
+       ~Theme();
 
        struct Chain {
                movit::EffectChain *chain;
@@ -53,7 +54,9 @@ public:
 
        int get_num_channels() const { return num_channels; }
        int map_signal(int signal_num);
+       void set_signal_mapping(int signal_num, int card_num);
        std::string get_channel_name(unsigned channel);
+       int get_channel_signal(unsigned channel);
        bool get_supports_set_wb(unsigned channel);
        void set_wb(unsigned channel, double r, double g, double b);
 
@@ -63,6 +66,8 @@ public:
        void transition_clicked(int transition_num, float t);
        void channel_clicked(int preview_num);
 
+       movit::ResourcePool *get_resource_pool() const { return resource_pool; }
+
 private:
        void register_class(const char *class_name, const luaL_Reg *funcs);
 
@@ -72,7 +77,9 @@ private:
        movit::ResourcePool *resource_pool;
        int num_channels;
        unsigned num_cards;
-       std::set<int> signals_warned_about;
+
+       std::mutex map_m;
+       std::map<int, int> signal_to_card_mapping;  // Protected by <map_m>.
 
        friend class LiveInputWrapper;
 };