4#ifndef __GUI_BACKEND_WRAPPED_OBJECT_WITH_CHANGE_SIGNAL_H__
5#define __GUI_BACKEND_WRAPPED_OBJECT_WITH_CHANGE_SIGNAL_H__
7#include "common/dsp/track.h"
8#include "common/utils/types.h"
9#include "gui/backend/backend/project_info.h"
11#include <giomm/listmodel.h>
12#include <glib-object.h>
20struct ChannelSendTarget;
25namespace zrythm::plugins
28class PluginCollection;
32#define WRAPPED_OBJECT_WITH_CHANGE_SIGNAL_TYPE \
33 (wrapped_object_with_change_signal_get_type ())
35 WrappedObjectWithChangeSignal,
36 wrapped_object_with_change_signal,
38 WRAPPED_OBJECT_WITH_CHANGE_SIGNAL,
47enum class WrappedObjectType
49 WRAPPED_OBJECT_TYPE_TRACK,
50 WRAPPED_OBJECT_TYPE_PLUGIN,
51 WRAPPED_OBJECT_TYPE_PLUGIN_DESCR,
52 WRAPPED_OBJECT_TYPE_CHORD_DESCR,
53 WRAPPED_OBJECT_TYPE_CHORD_PSET,
54 WRAPPED_OBJECT_TYPE_CHORD_PSET_PACK,
55 WRAPPED_OBJECT_TYPE_SUPPORTED_FILE,
56 WRAPPED_OBJECT_TYPE_MIDI_MAPPING,
57 WRAPPED_OBJECT_TYPE_ARRANGER_OBJECT,
58 WRAPPED_OBJECT_TYPE_PROJECT_INFO,
59 WRAPPED_OBJECT_TYPE_PORT,
60 WRAPPED_OBJECT_TYPE_CHANNEL_SEND_TARGET,
61 WRAPPED_OBJECT_TYPE_PLUGIN_COLLECTION,
62 WRAPPED_OBJECT_TYPE_EXT_PORT,
63 WRAPPED_OBJECT_TYPE_FILE_BROWSER_LOCATION,
73using WrappedObjectWithChangeSignal =
struct _WrappedObjectWithChangeSignal
75 GObject parent_instance;
77 using ObjVariant = merge_variants_t<
79 zrythm::plugins::PluginVariant,
80 ArrangerObjectVariant,
91 zrythm::plugins::PluginCollection,
95 merge_variants_t<std::variant<std::nullptr_t>, to_pointer_variant<ObjVariant>>;
97 WrappedObjectType type;
98 ObjPtrVariant obj =
nullptr;
101 GListModel * parent_model;
105 GListModel * child_model;
107 ObjectFreeFunc free_func;
116wrapped_object_with_change_signal_fire (WrappedObjectWithChangeSignal * self);
130WrappedObjectWithChangeSignal *
132 WrappedObjectWithChangeSignal::ObjPtrVariant obj,
133 WrappedObjectType type);
138WrappedObjectWithChangeSignal *
140 WrappedObjectWithChangeSignal::ObjPtrVariant obj,
141 WrappedObjectType type,
142 ObjectFreeFunc free_func);
145wrapped_object_with_change_signal_get_arranger_object (
146 WrappedObjectWithChangeSignal * self);
149wrapped_object_with_change_signal_get_track (
150 WrappedObjectWithChangeSignal * self);
153wrapped_object_with_change_signal_get_port (
154 WrappedObjectWithChangeSignal * self);
157wrapped_object_with_change_signal_get_plugin (
158 WrappedObjectWithChangeSignal * self);
A preset of chord descriptors.
The PluginDescriptor class provides a set of static utility functions and member functions to work wi...
Locations to be used in the file browser.