1 /* GSequencer - Advanced GTK Sequencer 2 * Copyright (C) 2005-2019 Joël Krähemann 3 * 4 * This file is part of GSequencer. 5 * 6 * GSequencer is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * GSequencer is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with GSequencer. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef __AGS_PLAY_CHANNEL_RUN_H__ 21 #define __AGS_PLAY_CHANNEL_RUN_H__ 22 23 #include <glib.h> 24 #include <glib-object.h> 25 26 #include <ags/libags.h> 27 28 #include <ags/audio/ags_channel.h> 29 #include <ags/audio/ags_recall_channel_run.h> 30 31 G_BEGIN_DECLS 32 33 #define AGS_TYPE_PLAY_CHANNEL_RUN (ags_play_channel_run_get_type()) 34 #define AGS_PLAY_CHANNEL_RUN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_PLAY_CHANNEL_RUN, AgsPlayChannelRun)) 35 #define AGS_PLAY_CHANNEL_RUN_CLASS(class) (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_PLAY_CHANNEL_RUN, AgsPlayChannelRunClass)) 36 #define AGS_IS_PLAY_CHANNEL_RUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_PLAY_CHANNEL_RUN)) 37 #define AGS_IS_PLAY_CHANNEL_RUN_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE((class), AGS_TYPE_PLAY_CHANNEL_RUN)) 38 #define AGS_PLAY_CHANNEL_RUN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), AGS_TYPE_PLAY_CHANNEL_RUN, AgsPlayChannelRunClass)) 39 40 typedef struct _AgsPlayChannelRun AgsPlayChannelRun; 41 typedef struct _AgsPlayChannelRunClass AgsPlayChannelRunClass; 42 43 /** 44 * AgsPlayChannelRunFlags: 45 * @AGS_PLAY_CHANNEL_RUN_TERMINATING: recall is terminating 46 * @AGS_PLAY_CHANNEL_RUN_INITIAL_RUN: recall does initial run 47 * 48 * Enum values to control the behavior or indicate internal state of #AgsPlayChannelRun by 49 * enable/disable as flags. 50 */ 51 typedef enum{ 52 AGS_PLAY_CHANNEL_RUN_TERMINATING = 1, 53 AGS_PLAY_CHANNEL_RUN_INITIAL_RUN = 1 << 1, 54 }AgsPlayChannelRunFlags; 55 56 struct _AgsPlayChannelRun 57 { 58 AgsRecallChannelRun recall_channel_run; 59 60 guint flags; 61 62 GObject *stream_channel_run; 63 }; 64 65 struct _AgsPlayChannelRunClass 66 { 67 AgsRecallChannelRunClass recall_channel_run; 68 }; 69 70 G_DEPRECATED 71 GType ags_play_channel_run_get_type(); 72 73 G_DEPRECATED 74 gboolean ags_play_channel_run_test_flags(AgsPlayChannelRun *play_channel_run, guint flags); 75 76 G_DEPRECATED 77 void ags_play_channel_run_set_flags(AgsPlayChannelRun *play_channel_run, guint flags); 78 79 G_DEPRECATED 80 void ags_play_channel_run_unset_flags(AgsPlayChannelRun *play_channel_run, guint flags); 81 82 G_DEPRECATED 83 AgsPlayChannelRun* ags_play_channel_run_new(AgsChannel *source, 84 GObject *stream_channel_run); 85 86 G_END_DECLS 87 88 #endif /*__AGS_PLAY_CHANNEL_RUN_H__*/ 89