3 * Copyright (C) 2024 Adam Williams <broadcast at earthling dot net>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
32 #include "loadbalance.h"
33 #include "pluginvclient.h"
40 int equivalent(SwatchConfig &that);
41 void copy_from(SwatchConfig &that);
42 void interpolate(SwatchConfig &prev,
56 class SwatchSlider : public BC_ISlider
59 SwatchSlider(SwatchMain *plugin,
71 class SwatchRadial : public BC_Radial
74 SwatchRadial(SwatchMain *plugin,
86 class SwatchCheck : public BC_CheckBox
89 SwatchCheck(SwatchMain *plugin,
100 class SwatchWindow : public PluginClientWindow
103 SwatchWindow(SwatchMain *plugin);
106 void create_objects();
110 SwatchSlider *brightness;
111 SwatchSlider *saturation;
113 SwatchRadial *fix_brightness;
114 SwatchRadial *fix_saturation;
115 SwatchCheck *draw_src;
116 BC_Title *brightness_title;
117 BC_Title *saturation_title;
126 class SwatchMain : public PluginVClient
129 SwatchMain(PluginServer *server);
132 int process_buffer(VFrame *frame,
133 int64_t start_position,
136 void save_data(KeyFrame *keyframe);
137 void read_data(KeyFrame *keyframe);
142 PLUGIN_CLASS_MEMBERS(SwatchConfig)
144 int need_reconfigure;
148 SwatchEngine *engine;
151 class SwatchPackage : public LoadPackage
159 class SwatchUnit : public LoadClient
162 SwatchUnit(SwatchEngine *server, SwatchMain *plugin);
163 void process_package(LoadPackage *package);
164 SwatchEngine *server;
169 class SwatchEngine : public LoadServer
172 SwatchEngine(SwatchMain *plugin, int total_clients, int total_packages);
173 void init_packages();
178 LoadClient* new_client();
179 LoadPackage* new_package();