Beast - Music Synthesizer and Composer  0.11.1+10.g2da35
bseitem.hh File Reference
#include <bse/bseobject.hh>
#include <bse/bseundostack.hh>
Include dependency graph for bseitem.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  BseItem
 
struct  BseItemClass
 
class  Bse::ItemImpl
 
class  Bse::ItemImpl::UndoDescriptor< Obj >
 

Namespaces

 Bse
 

Macros

#define BSE_TYPE_ITEM
 
#define BSE_ITEM(object)
 
#define BSE_ITEM_CLASS(class)
 
#define BSE_IS_ITEM(object)
 
#define BSE_IS_ITEM_CLASS(class)
 
#define BSE_ITEM_GET_CLASS(object)
 
#define BSE_ITEM_SINGLETON(object)
 
#define BSE_ITEM_INTERNAL(item)
 
#define BSE_ITEM_FLAGS_USHIFT
 
#define bse_item_undo_open(item, ...)
 
#define bse_item_set
 
#define bse_item_get
 

Typedefs

typedef void(* BseItemUncross) (BseItem *owner, BseItem *link)
 
typedef gboolean(* BseItemCheckContainer) (BseContainer *container, BseItem *item, gpointer data)
 
typedef gboolean(* BseItemCheckProxy) (BseItem *proxy, BseItem *item, gpointer data)
 

Enumerations

enum  BseItemFlags { BSE_ITEM_FLAG_SINGLETON, BSE_ITEM_FLAG_INTERN, BSE_ITEM_FLAG_INTERN_BRANCH }
 

Functions

BseIt3mSeq * bse_item_gather_items (BseItem *item, BseIt3mSeq *iseq, GType base_type, BseItemCheckContainer ccheck, BseItemCheckProxy pcheck, gpointer data)
 
BseIt3mSeq * bse_item_gather_items_typed (BseItem *item, BseIt3mSeq *iseq, GType proxy_type, GType container_type, gboolean allow_ancestor)
 
gboolean bse_item_get_candidates (BseItem *item, const gchar *property, BsePropertyCandidates *pc)
 
void bse_item_set_internal (gpointer item, gboolean internal)
 
gboolean bse_item_needs_storage (BseItem *item, BseStorage *storage)
 
void bse_item_compat_setup (BseItem *item, guint vmajor, guint vminor, guint vmicro)
 
guint bse_item_get_seqid (BseItem *item)
 
void bse_item_queue_seqid_changed (BseItem *item)
 
BseSuperbse_item_get_super (BseItem *item)
 
BseSNetbse_item_get_snet (BseItem *item)
 
BseProjectbse_item_get_project (BseItem *item)
 
BseItembse_item_get_toplevel (BseItem *item)
 
gboolean bse_item_has_ancestor (BseItem *item, BseItem *ancestor)
 
BseItembse_item_common_ancestor (BseItem *item1, BseItem *item2)
 
void bse_item_cross_link (BseItem *owner, BseItem *link, BseItemUncross uncross_func)
 
void bse_item_cross_unlink (BseItem *owner, BseItem *link, BseItemUncross uncross_func)
 
void bse_item_uncross_links (BseItem *owner, BseItem *link)
 
BseItembse_item_use (BseItem *item)
 
void bse_item_unuse (BseItem *item)
 
void bse_item_set_parent (BseItem *item, BseItem *parent)
 
Bse::Error bse_item_exec (gpointer item, const gchar *procedure,...)
 
Bse::Error bse_item_exec_void (gpointer item, const gchar *procedure,...)
 
void bse_item_set_valist_undoable (gpointer object, const gchar *first_property_name, va_list var_args)
 
void bse_item_set_undoable (gpointer object, const gchar *first_property_name,...) G_GNUC_NULL_TERMINATED
 
void bse_item_set_property_undoable (BseItem *self, const gchar *name, const GValue *value)
 
BseUndoStack * bse_item_undo_open_str (void *item, const std::string &string)
 
void bse_item_undo_close (BseUndoStack *ustack)
 
void bse_item_push_undo_proc (gpointer item, const gchar *procedure,...)
 
void bse_item_push_redo_proc (gpointer item, const gchar *procedure,...)
 
void bse_item_backup_to_undo (BseItem *self, BseUndoStack *ustack)
 
void bse_item_push_undo_storage (BseItem *self, BseUndoStack *ustack, BseStorage *storage)
 
Bse::MusicalTuning bse_item_current_musical_tuning (BseItem *self)
 

Function Documentation

void bse_item_cross_link ( BseItem owner,
BseItem link,
BseItemUncross  uncross_func 
)
Parameters
ownerreference owner
linkitem to be referenced by owner
uncross_funcnotifier to be executed on uncrossing

Install a weak cross reference from owner to link. The two items must have a common ancestor when the cross link is installed. Once their ancestry changes so that they don't have a common ancestor anymore, uncross_func() is executed.

Here is the call graph for this function:

void bse_item_cross_unlink ( BseItem owner,
BseItem link,
BseItemUncross  uncross_func 
)
Parameters
ownerreference owner
linkitem referenced by owner
uncross_funcnotifier queued to be executed on uncrossing

Removes a cross link previously installed via bse_item_cross_link() without executing uncross_func().

Here is the call graph for this function:

Bse::MusicalTuning bse_item_current_musical_tuning ( BseItem self)
Parameters
selfa valid Item
Returns
the current BseMusicalTuningType, defaulting to BSE_MUSICAL_TUNING_12_TET Find out about the musical tuning that is currently used for this item. The musical tuning depends on project wide settings that may change after this funciton has been called, so the result should be used with caution.

Here is the call graph for this function:

BseIt3mSeq* bse_item_gather_items_typed ( BseItem item,
BseIt3mSeq *  iseq,
GType  proxy_type,
GType  container_type,
gboolean  allow_ancestor 
)
Parameters
itemvalid BseItem from which to start gathering
itemssequence of items to append to
proxy_typebase type of the items to gather
container_typebase type of the containers to check for items
allow_ancestorif FALSE, ancestors of item are omitted
Returns
returns items

Variant of bse_item_gather_items(), the containers and items are simply filtered by checking derivation from container_type and proxy_type respectively. Gathered items may not be ancestors of item if allow_ancestor is FALSE.

Here is the call graph for this function:

void bse_item_uncross_links ( BseItem owner,
BseItem link 
)
Parameters
ownerreference owner
linkitem referenced by owner

Destroys all existing cross links from owner to link by executing the associated notifiers.