本文整理汇总了C++中AGS_RECALL函数的典型用法代码示例。如果您正苦于以下问题:C++ AGS_RECALL函数的具体用法?C++ AGS_RECALL怎么用?C++ AGS_RECALL使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了AGS_RECALL函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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";
}
开发者ID:gsequencer,项目名称:gsequencer,代码行数:8,代码来源:ags_feed_channel.c
示例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;
}
}
开发者ID:weedlight,项目名称:ags,代码行数:54,代码来源:ags_play_channel_run.c
示例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;
}
开发者ID:joelkraehemann,项目名称:gsequencer,代码行数:12,代码来源:ags_play_notation_audio_run.c
示例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);
}
开发者ID:weedlight,项目名称:ags,代码行数:14,代码来源:ags_stream_audio_signal.c
示例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;
}
开发者ID:gsequencer,项目名称:gsequencer,代码行数:15,代码来源:ags_play_notation_audio.c
示例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;
};
}
开发者ID:gsequencer,项目名称:gsequencer,代码行数:34,代码来源:ags_play_wave_channel_run.c
示例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);
}
开发者ID:weedlight,项目名称:ags,代码行数:28,代码来源:ags_recall_audio.c
示例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;
}
}
开发者ID:weedlight,项目名称:ags,代码行数:39,代码来源:ags_recall.c
示例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);
}
开发者ID:weedlight,项目名称:ags,代码行数:36,代码来源:ags_recall.c
示例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);
}
}
开发者ID:weedlight,项目名称:ags,代码行数:25,代码来源:ags_recall.c
示例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);
}
开发者ID:weedlight,项目名称:ags,代码行数:25,代码来源:ags_recall.c
示例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;
}
开发者ID:weedlight,项目名称:ags,代码行数:30,代码来源:ags_recall.c
示例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);
}
开发者ID:weedlight,项目名称:ags,代码行数:31,代码来源:ags_recall.c
示例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;
}
开发者ID:weedlight,项目名称:ags,代码行数:31,代码来源:ags_recall.c
示例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);
}
开发者ID:weedlight,项目名称:ags,代码行数:27,代码来源:ags_recall.c
示例16: ags_recall_find_recycling_container
/**
* ags_recall_find_recycling_container:
* @recall_i a #GList containing recalls
* @type a #GType
* @recycling_container an #AgsRecyclingContainer
* Returns: a #GList containing recalls, or #NULL if not found
*
* Finds next matching recall which has @recycling_container, see #AgsRecallId for further
* details about #AgsRecyclingContainer. Intended to be used as iteration function.
*/
GList*
ags_recall_find_recycling_container(GList *recall_i, GObject *recycling_container)
{
AgsRecall *recall;
#ifdef AGS_DEBUG
g_message("ags_recall_find_recycling_container: recycling_container = %llx\n\0", recycling_container);
#endif
while(recall_i != NULL){
recall = AGS_RECALL(recall_i->data);
if(recall->recall_id != NULL)
#ifdef AGS_DEBUG
g_message("ags_recall_find_recycling_container: recall_id->recycling_contianer = %llx\n\0", (long long unsigned int) recall->recall_id->recycling_container);
#endif
if(recall->recall_id != NULL &&
recall->recall_id->recycling_container == recycling_container){
return(recall_i);
}
recall_i = recall_i->next;
}
return(NULL);
}
开发者ID:weedlight,项目名称:ags,代码行数:37,代码来源:ags_recall.c
示例17: ags_play_channel_run_run_post
void
ags_play_channel_run_run_post(AgsRecall *recall)
{
AgsStreamChannelRun *stream_channel_run;
AgsChannel *source;
GList *list;
GList *recall_recycling_list, *recall_audio_signal_list;
gboolean found;
AGS_RECALL_CLASS(ags_play_channel_run_parent_class)->run_post(recall);
if((AGS_PLAY_CHANNEL_RUN_INITIAL_RUN & (AGS_PLAY_CHANNEL_RUN(recall)->flags)) == 0){
return;
}
AGS_PLAY_CHANNEL_RUN(recall)->flags &= (~AGS_PLAY_CHANNEL_RUN_INITIAL_RUN);
/* connect done */
source = AGS_RECALL_CHANNEL_RUN(recall)->source;
found = FALSE;
list = ags_recall_find_type_with_recycling_container(source->play,
AGS_TYPE_STREAM_CHANNEL_RUN,
recall->recall_id->recycling_container);
stream_channel_run = AGS_STREAM_CHANNEL_RUN(list->data);
recall_recycling_list = AGS_RECALL(stream_channel_run)->children;
while(recall_recycling_list != NULL){
recall_audio_signal_list = AGS_RECALL(recall_recycling_list->data)->children;
while(recall_audio_signal_list != NULL){
found = TRUE;
g_signal_connect_after(G_OBJECT(recall_audio_signal_list->data), "done\0",
G_CALLBACK(ags_play_channel_run_stream_audio_signal_done_callback), recall);
recall_audio_signal_list = recall_audio_signal_list->next;
}
recall_recycling_list = recall_recycling_list->next;
}
if(!found){
ags_play_channel_run_stop(recall);
}
}
开发者ID:weedlight,项目名称:ags,代码行数:47,代码来源:ags_play_channel_run.c
示例18: ags_recall_real_run_inter
void
ags_recall_real_run_inter(AgsRecall *recall)
{
GList *list;
list = recall->children;
while(list != NULL){
if((AGS_RECALL_TEMPLATE & (AGS_RECALL(list->data)->flags)) != 0){
g_warning("running on template\0");
}
ags_recall_run_inter(AGS_RECALL(list->data));
list = list->next;
}
}
开发者ID:weedlight,项目名称:ags,代码行数:17,代码来源:ags_recall.c
示例19: ags_play_dssi_audio_write
xmlNode*
ags_play_dssi_audio_write(AgsFile *file, xmlNode *parent, AgsPlugin *plugin)
{
AgsPlayDssiAudio *play_dssi_audio;
xmlNode *node;
gchar *id;
play_dssi_audio = AGS_PLAY_DSSI_AUDIO(plugin);
id = ags_id_generator_create_uuid();
node = xmlNewNode(NULL,
"ags-recall-dssi");
xmlNewProp(node,
AGS_FILE_ID_PROP,
id);
ags_file_add_id_ref(file,
g_object_new(AGS_TYPE_FILE_ID_REF,
"application-context", file->application_context,
"file", file,
"node", node,
"xpath", g_strdup_printf("xpath=//*[@id='%s']", id),
"reference", play_dssi_audio,
NULL));
xmlNewProp(node,
"filename",
g_strdup(AGS_RECALL(play_dssi_audio)->filename));
xmlNewProp(node,
"effect",
g_strdup(AGS_RECALL(play_dssi_audio)->effect));
xmlNewProp(node,
"index",
g_strdup_printf("%u", AGS_RECALL(play_dssi_audio)->effect_index));
xmlAddChild(parent,
node);
return(node);
}
开发者ID:gsequencer,项目名称:gsequencer,代码行数:45,代码来源:ags_play_dssi_audio.c
示例20: ags_drum_sequencer_count_callback
void
ags_drum_sequencer_count_callback(AgsDelayAudioRun *delay_audio_run,
guint nth_run,
guint delay, guint attack,
AgsDrum *drum)
{
AgsWindow *window;
AgsAudio *audio;
AgsCountBeatsAudio *play_count_beats_audio;
AgsCountBeatsAudioRun *play_count_beats_audio_run;
AgsToggleLed *toggle_led;
GList *list;
guint counter, active_led;
gdouble active_led_old, active_led_new;
GValue value = {0,};
window = AGS_WINDOW(gtk_widget_get_ancestor((GtkWidget *) drum, AGS_TYPE_WINDOW));
audio = AGS_MACHINE(drum)->audio;
/* get some recalls */
list = ags_recall_find_type(audio->play,
AGS_TYPE_COUNT_BEATS_AUDIO);
if(list != NULL){
play_count_beats_audio = AGS_COUNT_BEATS_AUDIO(list->data);
}
list = ags_recall_find_type_with_recycling_container(audio->play,
AGS_TYPE_COUNT_BEATS_AUDIO_RUN,
(GObject *) AGS_RECALL(delay_audio_run)->recall_id->recycling_container);
if(list != NULL){
play_count_beats_audio_run = AGS_COUNT_BEATS_AUDIO_RUN(list->data);
}
/* set optical feedback */
active_led_new = (guint) play_count_beats_audio_run->sequencer_counter % AGS_DRUM_PATTERN_CONTROLS;
drum->active_led = (guint) active_led_new;
if(play_count_beats_audio_run->sequencer_counter == 0){
g_value_init(&value, G_TYPE_DOUBLE);
ags_port_safe_read(play_count_beats_audio->sequencer_loop_end,
&value);
active_led_old = (guint) (g_value_get_double(&value) - 1.0) % AGS_DRUM_PATTERN_CONTROLS;
}else{
active_led_old = (guint) (drum->active_led - 1.0) % AGS_DRUM_PATTERN_CONTROLS;
}
toggle_led = ags_toggle_led_new(gtk_container_get_children(GTK_CONTAINER(drum->led)),
(guint) active_led_new,
(guint) active_led_old);
ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_MAIN(window->ags_main)->main_loop)->task_thread),
AGS_TASK(toggle_led));
}
开发者ID:weedlight,项目名称:ags,代码行数:57,代码来源:ags_drum_callbacks.c
注:本文中的AGS_RECALL函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论