3 * existing gstreamer interfaces
4 ./gstreamer/gst/gsttaginterface.c
5 ./gstreamer/gst/gstinterface.c
6 ./gstreamer/gst/gsturi.c
7 ./gst-plugins/gst-libs/gst/propertyprobe/propertyprobe.c
8 ./gst-plugins/gst-libs/gst/mixer/mixer.c
9 ./gst-plugins/gst-libs/gst/tuner/tuner.c
10 ./gst-plugins/gst-libs/gst/xoverlay/xoverlay.c
11 ./gst-plugins/gst-libs/gst/colorbalance/colorbalance.c
12 ./gst-plugins/gst-libs/gst/navigation/navigation.c
13 * new general interfaces
14 * GST_TYPE_PRESET_MANAGER
15 - add preset managment
18 void activate_preset_by_index(glong index);
19 void activate_preset_by_name(const gchar *name);
20 void add_current(const gchar *name);
21 void remove_preset_by_index(glong index);
22 void remove_preset_by_name(const gchar *name);
24 - there should always be a default preset
26 - were and how do we store the presets?
29 - add hints to generate 'good' looking interfaces to elements
31 GList *get_group_list();
32 struct ui_hint_group {
37 struct ui_hint_group_entry {
38 enum UiHintGroupEntryType type={PARAM,DPARAM};
43 "color_selection/rgb",
44 "color_selection/hsv",
50 - grouping of parameters, each group has:
51 - a label: giving a title to the group
53 - this can give the UI a hint about the purpose of the controls
54 - this only makes sense, if we dont make this a thousand templates
55 - a list of dparams or properties
57 - should this be aware of instruments (voice-groups)
58 - no, instruments should auto-generate those
59 * GST_TYPE_QUALITY_VS_SPEED
60 - get the name of a property that can be used to switch between
61 - a fast version for e.g. realtime usage
62 - a slower version with higher precission that can be used for off-line
64 * new interfaces for audio applications
65 * GST_TYPE_MULTI_VOICE
66 - control interface for elements that support multiple voices (in one output-pad)
68 gulong number_of_voices;
70 void remove_last_voice();
71 gulong get_number_of_voices();
73 - plugin will initially have one voice and that one can not be deleted
74 * GST_TYPE_MUSIC_GENERATOR
75 - add hints so that application can use a element as an instrument
78 DParam *get_note_dparam();
79 GList *get_trigger_dparams();
81 DParamType get_dparam_type(DParam *);
82 dparamtype = { NOTE, TRIGGER, OTHER }
84 char *get_number_of_voices_property();
85 GList *get_global_param_names();
86 GList *get_voice_param_names();
88 - find out which params to use to play notes/trigger sounds
89 - these params will not appear in a control-ui
90 - notes involve a key to frequency translation
91 - find out if the element has a number_of_voices property
92 - if yes, we can find out about the max by looking at the gparamspec
93 - setting the property, adds/removes voices
94 - if the element supports it, it needs to:
95 - register voice-dparams as e.g. note_XXX, where XXX is the voice-number
96 - run the voice-loop in the chain/loop function
97 each voice processes the same input, if at all
98 the outputs of all voices are mixed together