$Id$ * existing gstreamer interfaces ./gstreamer/gst/gsttaginterface.c ./gstreamer/gst/gstinterface.c ./gstreamer/gst/gsturi.c ./gst-plugins/gst-libs/gst/propertyprobe/propertyprobe.c ./gst-plugins/gst-libs/gst/mixer/mixer.c ./gst-plugins/gst-libs/gst/tuner/tuner.c ./gst-plugins/gst-libs/gst/xoverlay/xoverlay.c ./gst-plugins/gst-libs/gst/colorbalance/colorbalance.c ./gst-plugins/gst-libs/gst/navigation/navigation.c * new general interfaces * GST_TYPE_UI_HINT - add hints to generate 'good' looking interfaces to elements - API: GList *get_group_list(); struct ui_hint_group { gchar *label; gachr *role; GList *entries; } struct ui_hint_group_entry { enum UiHintGroupEntryType type={PARAM,DPARAM}; gchar *name; } roles { /* graphics */ "color_selection/rgb", "color_selection/hsv", "aspect_ratio", /* audio */ "envelope/adsr", } - features - grouping of parameters, each group has: - a label: giving a title to the group - a role: - this can give the UI a hint about the purpose of the controls - this only makes sense, if we dont make this a thousand templates - a list of dparams or properties - question - should this be aware of instruments (voice-groups) - no, instruments should auto-generate those * GST_TYPE_QUALITY_VS_SPEED - get the name of a property that can be used to switch between - a fast version for e.g. realtime usage - a slower version with higher precision that can be used for off-line rendering * new interfaces for audio applications * GST_TYPE_MULTI_VOICE - control interface for elements that support multiple voices (in one output-pad) - API: gulong number_of_voices; void add_voice(); void remove_last_voice(); gulong get_number_of_voices(); - features - plugin will initially have one voice and that one can not be deleted * GST_TYPE_MUSIC_GENERATOR - add hints so that application can use a element as an instrument - API: // param types DParam *get_note_dparam(); GList *get_trigger_dparams(); // -- or DParamType get_dparam_type(DParam *); dparamtype = { NOTE, TRIGGER, OTHER } // voices char *get_number_of_voices_property(); GList *get_global_param_names(); GList *get_voice_param_names(); - features - find out which params to use to play notes/trigger sounds - these params will not appear in a control-ui - notes involve a key to frequency translation - find out if the element has a number_of_voices property - if yes, we can find out about the max by looking at the gparamspec - setting the property, adds/removes voices - if the element supports it, it needs to: - register voice-dparams as e.g. note_XXX, where XXX is the voice-number - run the voice-loop in the chain/loop function each voice processes the same input, if at all the outputs of all voices are mixed together