1 /* GSequencer - Advanced GTK Sequencer 2 * Copyright (C) 2005-2020 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_SOUND_ENUMS_H__ 21 #define __AGS_SOUND_ENUMS_H__ 22 23 #include <glib.h> 24 #include <glib-object.h> 25 26 #include <ags/libags.h> 27 28 #define AGS_TYPE_SOUND_ABILITY_FLAGS (ags_sound_ability_flags_get_type()) 29 #define AGS_TYPE_SOUND_BEHAVIOUR_FLAGS (ags_sound_behaviour_flags_get_type()) 30 #define AGS_TYPE_SOUND_SCOPE (ags_sound_scope_get_type()) 31 #define AGS_TYPE_SOUND_STAGING_FLAGS (ags_sound_staging_flags_get_type()) 32 #define AGS_TYPE_SOUND_STATE_FLAGS (ags_sound_state_flags_get_type()) 33 #define AGS_TYPE_SOUND_KEY_FORMAT (ags_sound_key_format_get_type()) 34 35 G_BEGIN_DECLS 36 37 /** 38 * AgsSoundAbilityFlags: 39 * @AGS_SOUND_ABILITY_PLAYBACK: playback ability 40 * @AGS_SOUND_ABILITY_SEQUENCER: sequenecer ability 41 * @AGS_SOUND_ABILITY_NOTATION: notation abilitiy 42 * @AGS_SOUND_ABILITY_WAVE: wave abilitiy 43 * @AGS_SOUND_ABILITY_MIDI: MIDI ability 44 * 45 * Enum values to specify particular ability. Mark an object to be 46 * able to handle matching scope. 47 */ 48 typedef enum{ 49 AGS_SOUND_ABILITY_PLAYBACK = 1, 50 AGS_SOUND_ABILITY_SEQUENCER = 1 << 1, 51 AGS_SOUND_ABILITY_NOTATION = 1 << 2, 52 AGS_SOUND_ABILITY_WAVE = 1 << 3, 53 AGS_SOUND_ABILITY_MIDI = 1 << 4, 54 }AgsSoundAbilityFlags; 55 56 /** 57 * AgsSoundBehaviourFlags: 58 * @AGS_SOUND_BEHAVIOUR_PATTERN_MODE: pattern mode 59 * @AGS_SOUND_BEHAVIOUR_BULK_MODE: bulk mode 60 * @AGS_SOUND_BEHAVIOUR_REVERSE_MAPPING: reverse mapping 61 * @AGS_SOUND_BEHAVIOUR_DEFAULTS_TO_OUTPUT: defaults to output 62 * @AGS_SOUND_BEHAVIOUR_DEFAULTS_TO_INPUT: defaults to input 63 * @AGS_SOUND_BEHAVIOUR_CHAINED_TO_OUTPUT: chained to output 64 * @AGS_SOUND_BEHAVIOUR_CHAINED_TO_INPUT: chained to input 65 * @AGS_SOUND_BEHAVIOUR_PERSISTENT: persistent 66 * @AGS_SOUND_BEHAVIOUR_PERSISTENT_PLAYBACK: persistent playback 67 * @AGS_SOUND_BEHAVIOUR_PERSISTENT_NOTATION: persistent notation 68 * @AGS_SOUND_BEHAVIOUR_PERSISTENT_SEQUENCER: persistent sequencer 69 * @AGS_SOUND_BEHAVIOUR_PERSISTENT_WAVE: persistent wave 70 * @AGS_SOUND_BEHAVIOUR_PERSISTENT_MIDI: persistent MIDI 71 * @AGS_SOUND_BEHAVIOUR_PROPAGATE_DONE: propagate done 72 * 73 * Enum values to describe behaviour. 74 */ 75 typedef enum{ 76 AGS_SOUND_BEHAVIOUR_PATTERN_MODE = 1, 77 AGS_SOUND_BEHAVIOUR_BULK_MODE = 1 << 1, 78 AGS_SOUND_BEHAVIOUR_REVERSE_MAPPING = 1 << 2, 79 AGS_SOUND_BEHAVIOUR_DEFAULTS_TO_OUTPUT = 1 << 3, 80 AGS_SOUND_BEHAVIOUR_DEFAULTS_TO_INPUT = 1 << 4, 81 AGS_SOUND_BEHAVIOUR_CHAINED_TO_OUTPUT = 1 << 5, 82 AGS_SOUND_BEHAVIOUR_CHAINED_TO_INPUT = 1 << 6, 83 AGS_SOUND_BEHAVIOUR_PERSISTENT = 1 << 7, 84 AGS_SOUND_BEHAVIOUR_PERSISTENT_PLAYBACK = 1 << 8, 85 AGS_SOUND_BEHAVIOUR_PERSISTENT_NOTATION = 1 << 9, 86 AGS_SOUND_BEHAVIOUR_PERSISTENT_SEQUENCER = 1 << 10, 87 AGS_SOUND_BEHAVIOUR_PERSISTENT_WAVE = 1 << 11, 88 AGS_SOUND_BEHAVIOUR_PERSISTENT_MIDI = 1 << 12, 89 AGS_SOUND_BEHAVIOUR_PROPAGATE_DONE = 1 << 13, 90 }AgsSoundBehaviourFlags; 91 92 /** 93 * AgsSoundScope: 94 * @AGS_SOUND_SCOPE_PLAYBACK: playback scope 95 * @AGS_SOUND_SCOPE_SEQUENCER: sequenecer scope 96 * @AGS_SOUND_SCOPE_NOTATION: notation abilitiy 97 * @AGS_SOUND_SCOPE_WAVE: wave abilitiy 98 * @AGS_SOUND_SCOPE_MIDI: MIDI scope 99 * @AGS_SOUND_SCOPE_LAST: the last scope 100 * 101 * Enum values to specify current scope. Request current scope. 102 */ 103 typedef enum{ 104 AGS_SOUND_SCOPE_PLAYBACK, 105 AGS_SOUND_SCOPE_SEQUENCER, 106 AGS_SOUND_SCOPE_NOTATION, 107 AGS_SOUND_SCOPE_WAVE, 108 AGS_SOUND_SCOPE_MIDI, 109 AGS_SOUND_SCOPE_LAST, 110 }AgsSoundScope; 111 112 /** 113 * AgsSoundStagingFlags: 114 * @AGS_SOUND_STAGING_CHECK_RT_DATA: check rt-data 115 * @AGS_SOUND_STAGING_RUN_INIT_PRE: run init pre 116 * @AGS_SOUND_STAGING_RUN_INIT_INTER: run init inter 117 * @AGS_SOUND_STAGING_RUN_INIT_POST: run init post 118 * @AGS_SOUND_STAGING_FEED_INPUT_QUEUE: feed input queue 119 * @AGS_SOUND_STAGING_AUTOMATE: automate 120 * @AGS_SOUND_STAGING_RUN_PRE: run pre 121 * @AGS_SOUND_STAGING_RUN_INTER: run inter 122 * @AGS_SOUND_STAGING_RUN_POST: run post 123 * @AGS_SOUND_STAGING_DO_FEEDBACK: do feedback 124 * @AGS_SOUND_STAGING_FEED_OUTPUT_QUEUE: feed output queue 125 * @AGS_SOUND_STAGING_FINI: fini 126 * @AGS_SOUND_STAGING_CANCEL: cancel 127 * @AGS_SOUND_STAGING_DONE: done 128 * @AGS_SOUND_STAGING_REMOVE: remove 129 * @AGS_SOUND_STAGING_RESET: reset 130 * @AGS_SOUND_STAGING_FX: fx staging 131 * 132 * Enum values to stage the specified action. 133 */ 134 typedef enum{ 135 AGS_SOUND_STAGING_CHECK_RT_DATA = 1, 136 AGS_SOUND_STAGING_RUN_INIT_PRE = 1 << 1, 137 AGS_SOUND_STAGING_RUN_INIT_INTER = 1 << 2, 138 AGS_SOUND_STAGING_RUN_INIT_POST = 1 << 3, 139 AGS_SOUND_STAGING_FEED_INPUT_QUEUE = 1 << 4, 140 AGS_SOUND_STAGING_AUTOMATE = 1 << 5, 141 AGS_SOUND_STAGING_RUN_PRE = 1 << 6, 142 AGS_SOUND_STAGING_RUN_INTER = 1 << 7, 143 AGS_SOUND_STAGING_RUN_POST = 1 << 8, 144 AGS_SOUND_STAGING_DO_FEEDBACK = 1 << 9, 145 AGS_SOUND_STAGING_FEED_OUTPUT_QUEUE = 1 << 10, 146 AGS_SOUND_STAGING_FINI = 1 << 11, 147 AGS_SOUND_STAGING_CANCEL = 1 << 12, 148 AGS_SOUND_STAGING_DONE = 1 << 13, 149 AGS_SOUND_STAGING_REMOVE = 1 << 14, 150 AGS_SOUND_STAGING_RESET = 1 << 15, 151 AGS_SOUND_STAGING_FX = 1 << 16, 152 }AgsSoundStagingFlags; 153 154 /** 155 * AgsSoundStateFlags: 156 * @AGS_SOUND_STATE_IS_WAITING: is waiting 157 * @AGS_SOUND_STATE_IS_ACTIVE: is active 158 * @AGS_SOUND_STATE_IS_PROCESSING: is processing 159 * @AGS_SOUND_STATE_IS_TERMINATING: is terminating 160 * 161 * Enum values to indicate state. 162 */ 163 typedef enum{ 164 AGS_SOUND_STATE_IS_WAITING = 1, 165 AGS_SOUND_STATE_IS_ACTIVE = 1 << 1, 166 AGS_SOUND_STATE_IS_PROCESSING = 1 << 2, 167 AGS_SOUND_STATE_IS_TERMINATING = 1 << 3, 168 }AgsSoundStateFlags; 169 170 /** 171 * AgsSoundKeyFormat: 172 * @AGS_SOUND_KEY_FORMAT_16TH: key format 16th 173 * @AGS_SOUND_KEY_FORMAT_256TH: key format 256th 174 * 175 * Enum values to specify key format. 176 */ 177 typedef enum{ 178 AGS_SOUND_KEY_FORMAT_16TH, 179 AGS_SOUND_KEY_FORMAT_256TH, 180 }AgsSoundKeyFormat; 181 182 GType ags_sound_ability_flags_get_type(); 183 GType ags_sound_behaviour_flags_get_type(); 184 GType ags_sound_scope_get_type(); 185 GType ags_sound_staging_flags_get_type(); 186 GType ags_sound_state_flags_get_type(); 187 GType ags_sound_key_format_get_type(); 188 189 G_END_DECLS 190 191 #endif /*__AGS_SOUND_ENUMS_H__*/ 192