本文整理汇总了C++中AGS_RECALL函数的典型用法代码示例。如果您正苦于以下问题:C++ AGS_RECALL函数的具体用法?C++ AGS_RECALL怎么用?C++ AGS_RECALL使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了AGS_RECALL函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ags_feed_channel_init
void
ags_feed_channel_init(AgsFeedChannel *feed_channel)
{
AGS_RECALL(feed_channel)->name = "ags-feed";
AGS_RECALL(feed_channel)->version = AGS_RECALL_DEFAULT_VERSION;
AGS_RECALL(feed_channel)->build_id = AGS_RECALL_DEFAULT_BUILD_ID;
AGS_RECALL(feed_channel)->xml_type = "ags-feed-channel";
}
示例2: ags_play_channel_run_set_property
void
ags_play_channel_run_set_property(GObject *gobject,
guint prop_id,
const GValue *value,
GParamSpec *param_spec)
{
AgsPlayChannelRun *play_channel_run;
play_channel_run = AGS_PLAY_CHANNEL_RUN(gobject);
switch(prop_id){
case PROP_STREAM_CHANNEL_RUN:
{
AgsStreamChannelRun *stream_channel_run;
gboolean is_template;
stream_channel_run = (AgsStreamChannelRun *) g_value_get_object(value);
if(stream_channel_run == play_channel_run->stream_channel_run)
return;
if(stream_channel_run != NULL &&
(AGS_RECALL_TEMPLATE & (AGS_RECALL(stream_channel_run)->flags)) != 0){
is_template = TRUE;
}else{
is_template = FALSE;
}
if(play_channel_run->stream_channel_run != NULL){
if(is_template){
ags_recall_remove_dependency(AGS_RECALL(play_channel_run),
(AgsRecall *) play_channel_run->stream_channel_run);
}
g_object_unref(G_OBJECT(play_channel_run->stream_channel_run));
}
if(stream_channel_run != NULL){
g_object_ref(G_OBJECT(stream_channel_run));
if(is_template){
ags_recall_add_dependency(AGS_RECALL(play_channel_run),
ags_recall_dependency_new((GObject *) stream_channel_run));
}
}
play_channel_run->stream_channel_run = stream_channel_run;
}
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
break;
}
}
示例3: ags_play_notation_audio_run_init
void
ags_play_notation_audio_run_init(AgsPlayNotationAudioRun *play_notation_audio_run)
{
AGS_RECALL(play_notation_audio_run)->name = "ags-play-notation\0";
AGS_RECALL(play_notation_audio_run)->version = AGS_RECALL_DEFAULT_VERSION;
AGS_RECALL(play_notation_audio_run)->build_id = AGS_RECALL_DEFAULT_BUILD_ID;
AGS_RECALL(play_notation_audio_run)->xml_type = "ags-play-notation-audio-run\0";
AGS_RECALL(play_notation_audio_run)->port = NULL;
play_notation_audio_run->delay_audio_run = NULL;
play_notation_audio_run->count_beats_audio_run = NULL;
}
示例4: ags_stream_audio_signal_finalize
void
ags_stream_audio_signal_finalize(GObject *gobject)
{
if(AGS_RECALL_AUDIO_SIGNAL(gobject)->source != NULL &&
AGS_RECALL(gobject)->parent != NULL){
ags_recycling_remove_audio_signal(AGS_RECALL_RECYCLING(AGS_RECALL(gobject)->parent)->source,
AGS_RECALL_AUDIO_SIGNAL(gobject)->source);
}
// g_object_unref(AGS_RECALL_AUDIO_SIGNAL(gobject)->source);
// g_object_unref(AGS_RECALL_AUDIO_SIGNAL(gobject)->source);
/* call parent */
G_OBJECT_CLASS(ags_stream_audio_signal_parent_class)->finalize(gobject);
}
示例5: ags_play_notation_audio_init
void
ags_play_notation_audio_init(AgsPlayNotationAudio *play_notation_audio)
{
GList *port;
AGS_RECALL(play_notation_audio)->name = "ags-play-notation";
AGS_RECALL(play_notation_audio)->version = AGS_RECALL_DEFAULT_VERSION;
AGS_RECALL(play_notation_audio)->build_id = AGS_RECALL_DEFAULT_BUILD_ID;
AGS_RECALL(play_notation_audio)->xml_type = "ags-play-notation-audio";
port = NULL;
/* set port */
AGS_RECALL(play_notation_audio)->port = port;
}
示例6: ags_play_wave_channel_run_get_property
void
ags_play_wave_channel_run_get_property(GObject *gobject,
guint prop_id,
GValue *value,
GParamSpec *param_spec)
{
AgsPlayWaveChannelRun *play_wave_channel_run;
pthread_mutex_t *recall_mutex;
play_wave_channel_run = AGS_PLAY_WAVE_CHANNEL_RUN(gobject);
/* get recall mutex */
pthread_mutex_lock(ags_recall_get_class_mutex());
recall_mutex = AGS_RECALL(gobject)->obj_mutex;
pthread_mutex_unlock(ags_recall_get_class_mutex());
switch(prop_id){
case PROP_X_OFFSET:
{
pthread_mutex_lock(recall_mutex);
g_value_set_uint64(value, play_wave_channel_run->x_offset);
pthread_mutex_unlock(recall_mutex);
}
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
break;
};
}
示例7: ags_recall_audio_pack
gboolean
ags_recall_audio_pack(AgsPackable *packable, GObject *container)
{
AgsRecallContainer *recall_container;
GList *list;
if(ags_recall_audio_parent_packable_interface->pack(packable, container))
return(TRUE);
recall_container = AGS_RECALL_CONTAINER(container);
g_object_set(G_OBJECT(recall_container),
"recall_audio\0", AGS_RECALL(packable),
NULL);
/* set in AgsRecallAudioRun */
list = recall_container->recall_audio_run;
while(list != NULL){
g_object_set(G_OBJECT(list->data),
"recall_audio\0", AGS_RECALL_AUDIO(packable),
NULL);
list = list->next;
}
return(FALSE);
}
示例8: ags_recall_set_flags
/**
* ags_recall_set_flags:
* @recall an #AgsRecall
* @flags the flags mask
*
* Set flags recursivly.
*/
void
ags_recall_set_flags(AgsRecall *recall, guint flags)
{
GList *child;
guint inheritated_flags_mask;
/* set flags */
recall->flags |= flags;
/* set recursivly - prepare mask */
inheritated_flags_mask = (AGS_RECALL_PLAYBACK |
AGS_RECALL_SEQUENCER |
AGS_RECALL_NOTATION |
AGS_RECALL_PROPAGATE_DONE |
AGS_RECALL_INITIAL_RUN);
if(!AGS_IS_RECALL_RECYCLING(recall)){
inheritated_flags_mask |= (AGS_RECALL_PERSISTENT |
AGS_RECALL_PERSISTENT_PLAYBACK |
AGS_RECALL_PERSISTENT_SEQUENCER |
AGS_RECALL_PERSISTENT_NOTATION);
}
/* apply recursivly */
child = recall->children;
while(child != NULL){
ags_recall_set_flags(AGS_RECALL(child->data), (inheritated_flags_mask & (flags)));
child = child->next;
}
}
示例9: ags_recall_is_done
/**
* ags_recall_is_done:
* @recall an #AgsRecall
* @recycling_container an #AgsRecyclingContainer
*
* Check if recall is over.
*/
gboolean
ags_recall_is_done(GList *recalls, GObject *recycling_container)
{
AgsRecall *recall;
if(recalls == NULL ||
!AGS_IS_RECYCLING_CONTAINER(recycling_container)){
return(FALSE);
}
while(recalls != NULL){
recall = AGS_RECALL(recalls->data);
if((AGS_RECALL_TEMPLATE & (recall->flags)) == 0 &&
!AGS_IS_RECALL_AUDIO(recall) &&
!AGS_IS_RECALL_CHANNEL(recall) &&
recall->recall_id != NULL &&
recall->recall_id->recycling_container == recycling_container){
if((AGS_RECALL_DONE & (recall->flags)) == 0){
g_message("%s\0", G_OBJECT_TYPE_NAME(recall));
return(FALSE);
}
}
recalls = recalls->next;
}
return(TRUE);
}
示例10: ags_recall_real_cancel
void
ags_recall_real_cancel(AgsRecall *recall)
{
GList *list;
if((AGS_RECALL_TEMPLATE & (recall->flags)) != 0){
return;
}
/* call cancel for children */
list = recall->children;
while(list != NULL){
ags_recall_cancel(AGS_RECALL(list->data));
list = list->next;
}
if((AGS_RECALL_PERSISTENT & (recall->flags)) != 0 ||
(AGS_RECALL_PERSISTENT_PLAYBACK & (recall->flags)) != 0){
ags_recall_stop_persistent(recall);
}else{
ags_recall_done(recall);
}
}
示例11: ags_recall_real_remove
void
ags_recall_real_remove(AgsRecall *recall)
{
AgsRecall *parent;
ags_dynamic_connectable_disconnect_dynamic(AGS_DYNAMIC_CONNECTABLE(recall));
if(recall->parent == NULL){
parent = NULL;
g_object_unref(recall);
return;
}else{
parent = AGS_RECALL(recall->parent);
parent->children = g_list_remove(parent->children, recall);
}
if(parent != NULL &&
(AGS_RECALL_PROPAGATE_DONE & (parent->flags)) != 0 &&
parent->children == NULL){
ags_recall_done(parent);
}
g_object_unref(recall);
}
示例12: ags_recall_connect
void
ags_recall_connect(AgsConnectable *connectable)
{
AgsRecall *recall;
AgsRecallHandler *recall_handler;
GList *list;
recall = AGS_RECALL(connectable);
list = recall->children;
while(list != NULL){
ags_connectable_connect(AGS_CONNECTABLE(list->data));
list = list->next;
}
/* handlers */
list = recall->handlers;
while(list != NULL){
recall_handler = AGS_RECALL_HANDLER(list->data);
recall_handler->handler = g_signal_connect(G_OBJECT(recall), recall_handler->signal_name,
G_CALLBACK(recall_handler->callback), recall_handler->data);
list = list->next;
}
recall->flags |= AGS_RECALL_CONNECTED;
}
示例13: ags_recall_disconnect_dynamic
void
ags_recall_disconnect_dynamic(AgsDynamicConnectable *dynamic_connectable)
{
AgsRecall *recall;
AgsRecallHandler *recall_handler;
GList *list;
recall = AGS_RECALL(dynamic_connectable);
/* disconnect children */
list = recall->children;
while(list != NULL){
ags_dynamic_connectable_disconnect_dynamic(AGS_DYNAMIC_CONNECTABLE(list->data));
list = list->next;
}
/* disconnect handlers */
list = recall->handlers;
while(list != NULL){
recall_handler = AGS_RECALL_HANDLER(list->data);
g_signal_handler_disconnect(G_OBJECT(recall), recall_handler->handler);
list = list->next;
}
recall->flags &= (~AGS_RECALL_RUN_INITIALIZED);
}
示例14: ags_recall_connect_dynamic
void
ags_recall_connect_dynamic(AgsDynamicConnectable *dynamic_connectable)
{
AgsRecall *recall;
AgsRecallHandler *recall_handler;
GList *list;
recall = AGS_RECALL(dynamic_connectable);
/* connect children */
list = recall->children;
while(list != NULL){
ags_dynamic_connectable_connect_dynamic(AGS_DYNAMIC_CONNECTABLE(list->data));
list = list->next;
}
/* connect handlers */
list = recall->handlers;
while(list != NULL){
recall_handler = AGS_RECALL_HANDLER(list->data);
recall_handler->handler = g_signal_connect_after(G_OBJECT(recall), recall_handler->signal_name,
G_CALLBACK(recall_handler->callback), recall_handler->data);
list = list->next;
}
recall->flags |= AGS_RECALL_RUN_INITIALIZED;
}
示例15: ags_recall_write
xmlNode*
ags_recall_write(AgsFile *file, xmlNode *parent, AgsPlugin *plugin)
{
xmlNode *node;
gchar *id;
id = ags_id_generator_create_uuid();
node = xmlNewNode(NULL,
AGS_RECALL(plugin)->xml_type);
xmlNewProp(node,
AGS_FILE_ID_PROP,
id);
ags_file_add_id_ref(file,
g_object_new(AGS_TYPE_FILE_ID_REF,
"main\0", file->ags_main,
"node\0", node,
"xpath\0", g_strdup_printf("xpath=//*[@id='%s']\0", id),
"reference\0", G_OBJECT(plugin),
NULL));
xmlAddChild(parent,
node);
return(node);
}