Mercurial > audlegacy
comparison src/audacious/plugin.h @ 3760:8fdaccee8312
flows
author | William Pitcock <nenolod@atheme.org> |
---|---|
date | Sun, 14 Oct 2007 21:48:19 -0500 |
parents | 9e54690956a0 |
children | a1039487bf3f |
comparison
equal
deleted
inserted
replaced
3759:9e54690956a0 | 3760:8fdaccee8312 |
---|---|
87 typedef struct _DiscoveryPlugin DiscoveryPlugin; | 87 typedef struct _DiscoveryPlugin DiscoveryPlugin; |
88 typedef struct _LowlevelPlugin LowlevelPlugin; | 88 typedef struct _LowlevelPlugin LowlevelPlugin; |
89 | 89 |
90 typedef struct _InputPlayback InputPlayback; | 90 typedef struct _InputPlayback InputPlayback; |
91 | 91 |
92 typedef struct { | |
93 Tuple *tuple; | |
94 InputPlugin *ip; | |
95 } ProbeResult; | |
96 | |
92 typedef GHashTable INIFile; | 97 typedef GHashTable INIFile; |
93 | 98 |
94 #include "audacious/playlist.h" | 99 #include "audacious/playlist.h" |
95 #include "audacious/input.h" | 100 #include "audacious/input.h" |
96 #include "audacious/mime.h" | 101 #include "audacious/mime.h" |
97 #include "audacious/custom_uri.h" | 102 #include "audacious/custom_uri.h" |
98 #include "audacious/hook.h" | 103 #include "audacious/hook.h" |
99 #include "audacious/xconvert.h" | 104 #include "audacious/xconvert.h" |
100 #include "audacious/ui_plugin_menu.h" | 105 #include "audacious/ui_plugin_menu.h" |
101 #include "audacious/formatter.h" | 106 #include "audacious/formatter.h" |
107 #include "audacious/flow.h" | |
102 | 108 |
103 #define PLUGIN_COMMON_FIELDS \ | 109 #define PLUGIN_COMMON_FIELDS \ |
104 gpointer handle; \ | 110 gpointer handle; \ |
105 gchar *filename; \ | 111 gchar *filename; \ |
106 gchar *description; \ | 112 gchar *description; \ |
557 ProbeResult *(*input_check_file)(const gchar * filename, gboolean show_warning); | 563 ProbeResult *(*input_check_file)(const gchar * filename, gboolean show_warning); |
558 | 564 |
559 /* InputPlayback */ | 565 /* InputPlayback */ |
560 InputPlayback *(*playback_new)(void); | 566 InputPlayback *(*playback_new)(void); |
561 void (*playback_run)(InputPlayback *); | 567 void (*playback_run)(InputPlayback *); |
568 | |
569 /* Flows */ | |
570 gsize (*flow_execute)(Flow *flow, gint time, gpointer *data, gsize len, AFormat fmt, | |
571 gint srate, gint channels); | |
572 Flow *(*flow_new)(void); | |
573 void (*flow_link_element)(Flow *flow, FlowFunction func); | |
574 void (*flow_unlink_element)(Flow *flow, FlowFunction func); | |
575 void (*effect_flow)(FlowContext *context); | |
576 void (*iir_flow)(FlowContext *context); | |
577 void (*volumecontrol_flow)(FlowContext *context); | |
562 }; | 578 }; |
563 | 579 |
564 /* Convenience macros for accessing the public API. */ | 580 /* Convenience macros for accessing the public API. */ |
565 /* public name vtable mapping */ | 581 /* public name vtable mapping */ |
566 #define aud_vfs_fopen _audvt->vfs_fopen | 582 #define aud_vfs_fopen _audvt->vfs_fopen |
875 | 891 |
876 #define aud_playback_new _audvt->playback_new | 892 #define aud_playback_new _audvt->playback_new |
877 #define aud_playback_run _audvt->playback_run | 893 #define aud_playback_run _audvt->playback_run |
878 #define aud_playback_free(x) g_slice_free(InputPlayback, (x)) | 894 #define aud_playback_free(x) g_slice_free(InputPlayback, (x)) |
879 | 895 |
896 #define aud_flow_execute _audvt->flow_execute | |
897 #define aud_flow_new _audvt->flow_new | |
898 #define aud_flow_link_element _audvt->flow_link_element | |
899 #define aud_flow_unlink_element _audvt->flow_unlink_element | |
900 #define aud_effect_flow _audvt->effect_flow | |
901 #define aud_iir_flow _audvt->iir_flow | |
902 #define aud_volumecontrol_flow _audvt->volumecontrol_flow | |
903 #define aud_flow_destroy(flow) mowgli_object_unref(flow) | |
904 | |
880 #include "audacious/auddrct.h" | 905 #include "audacious/auddrct.h" |
881 | 906 |
882 /* for multi-file plugins :( */ | 907 /* for multi-file plugins :( */ |
883 extern struct _AudaciousFuncTableV1 *_audvt; | 908 extern struct _AudaciousFuncTableV1 *_audvt; |
884 | 909 |