BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bstcanvassource.hh
Go to the documentation of this file.
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__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines