Changeset 195 for fm_server/trunk/src/fm_element.h
- Timestamp:
- 01/16/08 13:40:24 (4 years ago)
- Files:
-
- 1 modified
-
fm_server/trunk/src/fm_element.h (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
fm_server/trunk/src/fm_element.h
r144 r195 35 35 #define FM_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FM_TYPE_ELEMENT, FmElementClass)) 36 36 37 typedef enum _FmElementPads FmElementPads;38 37 typedef struct _FmElement FmElement; 39 38 typedef struct _FmElementClass FmElementClass; 40 39 41 enum _FmElementPads {42 PAD_NONE,43 PAD_SINGLE,44 PAD_MULTIPLE45 };46 40 47 41 typedef struct _FmElementSrcPort FmElementSrcPort; … … 64 58 65 59 60 typedef struct _FmSync FmSync; 61 struct _FmSync { 62 gboolean in_use; 63 64 FmElement *master; 65 66 /* written from fm_element_become_sync_master */ 67 gdouble bpm; 68 gint beat_per_bar; 69 70 /* automatically generated */ 71 gdouble ns_per_beat; 72 73 /* updated on update_cycle() */ 74 gint bar; 75 gint beat; 76 gfloat beat_offset_ns; 77 78 gdouble bpm_new; 79 guint played_ns_new; 80 }; 81 66 82 67 83 … … 71 87 gchar *name; 72 88 73 //FmElementPads src_pads; 74 /*GList *src_list;*/ 75 GList *src_ports; 89 GList *src_ports; // dove esce l'audio 76 90 77 //FmElementPads sink_pads; 78 /*GList *sink_list;*/ 79 GList *sink_ports; 91 GList *sink_ports; // dove entra l'audio 92 FmElement *peer_sync_master; 80 93 81 94 gboolean active; … … 84 97 // yes, I know this is an hack 85 98 gpointer pipeline; 99 100 FmSync *sync_ref; 101 gboolean sync_master; 86 102 }; 87 103 … … 95 111 gboolean (*activate) (FmElement *element); 96 112 gboolean (*deactivate) (FmElement *element); 97 void (*become_sync_master) (FmElement *element); 113 void (*become_sync_ref) (FmElement *element, 114 FmSync *sync); 115 void (*become_sync_master) (FmElement *element, 116 FmSync *sync); 98 117 void (*get_buffer) (FmElement *element, 99 FmBuffer *buffer); 118 FmBuffer *buffer, 119 FmSync *sync); 100 120 }; 101 121 … … 114 134 fm_element_get_name (FmElement *element); 115 135 116 gpointer 117 fm_element_ pipeline_get_sync_info(FmElement *element);136 inline gboolean 137 fm_element_is_sync_ref (FmElement *element); 118 138 119 gboolean139 inline gboolean 120 140 fm_element_is_sync_master (FmElement *element); 121 141 … … 138 158 void 139 159 fm_element_get_buffer (FmElement *element, 140 FmBuffer *buffer); 160 FmBuffer *buffer, 161 FmSync *sync); 141 162 142 163 void … … 148 169 void 149 170 fm_element_get_buffer_from_src (FmElement *element, 150 FmBuffer *buffer); 171 FmBuffer *buffer, 172 FmSync *sync); 173 174 void 175 fm_element_sync_ref_set_peer_master (FmElement *reference, 176 FmElement *peer_sync_master);
