BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __BST_CANVAS_SOURCE_H__ 00003 #define __BST_CANVAS_SOURCE_H__ 00004 00005 #include "bstutils.hh" 00006 00007 G_BEGIN_DECLS 00008 00009 /* --- Gtk+ type macros --- */ 00010 #define BST_TYPE_CANVAS_SOURCE (bst_canvas_source_get_type ()) 00011 #define BST_CANVAS_SOURCE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BST_TYPE_CANVAS_SOURCE, BstCanvasSource)) 00012 #define BST_CANVAS_SOURCE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BST_TYPE_CANVAS_SOURCE, BstCanvasSourceClass)) 00013 #define BST_IS_CANVAS_SOURCE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BST_TYPE_CANVAS_SOURCE)) 00014 #define BST_IS_CANVAS_SOURCE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BST_TYPE_CANVAS_SOURCE)) 00015 #define BST_CANVAS_SOURCE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BST_TYPE_CANVAS_SOURCE, BstCanvasSourceClass)) 00016 #define BST_CANVAS_SOURCE_PIXEL_SCALE ((SfiReal) 100) /* > total width/height */ 00017 00018 00019 /* --- structures & typedefs --- */ 00020 typedef struct _BstCanvasSource BstCanvasSource; 00021 typedef struct _BstCanvasSourceClass BstCanvasSourceClass; 00022 struct _BstCanvasSource 00023 { 00024 GnomeCanvasGroup parent_object; 00025 00026 SfiProxy source; 00027 00028 GtkWidget *params_dialog; 00029 GtkWidget *source_info; 00030 00031 GnomeCanvasItem *icon_item; 00032 GnomeCanvasItem *text; 00033 GSList *channel_items; 00034 GSList *channel_hints; 00035 00036 guint swap_channels : 1; 00037 guint in_move : 1; 00038 guint show_hints : 1; 00039 guint idle_reposition : 1; 00040 guint built_ichannels : 1; 00041 guint built_ochannels : 1; 00042 guint built_ihints : 1; 00043 guint built_ohints : 1; 00044 gdouble move_dx, move_dy; 00045 }; 00046 struct _BstCanvasSourceClass 00047 { 00048 GnomeCanvasGroupClass parent_class; 00049 00050 void (*update_links) (BstCanvasSource *source); 00051 }; 00052 00053 00054 /* --- prototypes --- */ 00055 GType bst_canvas_source_get_type (void); 00056 GnomeCanvasItem* bst_canvas_source_new (GnomeCanvasGroup *group, 00057 SfiProxy source); 00058 void bst_canvas_source_update_links (BstCanvasSource *csource); 00059 void bst_canvas_source_ochannel_pos (BstCanvasSource *csource, 00060 guint ochannel, 00061 gdouble *world_x, 00062 gdouble *world_y); 00063 void bst_canvas_source_ichannel_pos (BstCanvasSource *csource, 00064 guint ichannel, 00065 gdouble *world_x, 00066 gdouble *world_y); 00067 gboolean bst_canvas_source_is_jchannel (BstCanvasSource *csource, 00068 guint ichannel); 00069 gboolean bst_canvas_source_ichannel_free (BstCanvasSource *csource, 00070 guint ichannel); 00071 guint bst_canvas_source_ichannel_at (BstCanvasSource *csource, 00072 gdouble world_x, 00073 gdouble world_y); 00074 guint bst_canvas_source_ochannel_at (BstCanvasSource *csource, 00075 gdouble world_x, 00076 gdouble world_y); 00077 BstCanvasSource* bst_canvas_source_at (GnomeCanvas *csource, 00078 gdouble world_x, 00079 gdouble world_y); 00080 void bst_canvas_source_reset_params (BstCanvasSource *csource); 00081 void bst_canvas_source_popup_params (BstCanvasSource *csource); 00082 void bst_canvas_source_toggle_params (BstCanvasSource *csource); 00083 void bst_canvas_source_popup_info (BstCanvasSource *csource); 00084 void bst_canvas_source_toggle_info (BstCanvasSource *csource); 00085 void bst_canvas_source_set_channel_hints (BstCanvasSource *csource, 00086 gboolean on_off); 00087 00088 G_END_DECLS 00089 00090 #endif /* __BST_CANVAS_SOURCE_H__ */