fmod/studio/
flags.rs

1// Copyright (c) 2024 Lily Lyons
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at https://mozilla.org/MPL/2.0/.
6
7use fmod_sys::*;
8use std::ffi::c_uint;
9
10bitflags::bitflags! {
11  #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
12  pub struct InitFlags: c_uint {
13      const NORMAL                = FMOD_STUDIO_INIT_NORMAL;
14      const LIVEUPDATE            = FMOD_STUDIO_INIT_LIVEUPDATE;
15      const ALLOW_MISSING_PLUGINS = FMOD_STUDIO_INIT_ALLOW_MISSING_PLUGINS;
16      const SYNCHRONOUS_UPDATE    = FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE;
17      const DEFERRED_CALLBACKS    = FMOD_STUDIO_INIT_DEFERRED_CALLBACKS;
18      const LOAD_FROM_UPDATE      = FMOD_STUDIO_INIT_LOAD_FROM_UPDATE;
19      const MEMORY_TRACKING       = FMOD_STUDIO_INIT_MEMORY_TRACKING;
20  }
21}
22
23impl From<FMOD_STUDIO_INITFLAGS> for InitFlags {
24    fn from(value: FMOD_STUDIO_INITFLAGS) -> Self {
25        InitFlags::from_bits_truncate(value)
26    }
27}
28
29impl From<InitFlags> for FMOD_STUDIO_INITFLAGS {
30    fn from(value: InitFlags) -> Self {
31        value.bits()
32    }
33}
34
35bitflags::bitflags! {
36  #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
37  pub struct LoadBankFlags: c_uint {
38      const NORMAL             = FMOD_STUDIO_LOAD_BANK_NORMAL;
39      const NONBLOCKING        = FMOD_STUDIO_LOAD_BANK_NONBLOCKING;
40      const DECOMPRESS_SAMPLES = FMOD_STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES;
41      const UNENCRYPTED        = FMOD_STUDIO_LOAD_BANK_UNENCRYPTED;
42  }
43}
44
45impl From<FMOD_STUDIO_LOAD_BANK_FLAGS> for LoadBankFlags {
46    fn from(value: FMOD_STUDIO_LOAD_BANK_FLAGS) -> Self {
47        LoadBankFlags::from_bits_truncate(value)
48    }
49}
50
51impl From<LoadBankFlags> for FMOD_STUDIO_LOAD_BANK_FLAGS {
52    fn from(value: LoadBankFlags) -> Self {
53        value.bits()
54    }
55}
56
57bitflags::bitflags! {
58  #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
59  pub struct ParameterFlags: c_uint {
60      const READONLY = FMOD_STUDIO_PARAMETER_READONLY;
61      const AUTOMATIC = FMOD_STUDIO_PARAMETER_AUTOMATIC;
62      const GLOBAL = FMOD_STUDIO_PARAMETER_GLOBAL;
63      const DISCRETE = FMOD_STUDIO_PARAMETER_DISCRETE;
64      const LABELED = FMOD_STUDIO_PARAMETER_LABELED;
65  }
66}
67
68impl From<FMOD_STUDIO_PARAMETER_FLAGS> for ParameterFlags {
69    fn from(value: FMOD_STUDIO_PARAMETER_FLAGS) -> Self {
70        ParameterFlags::from_bits_truncate(value)
71    }
72}
73
74impl From<ParameterFlags> for FMOD_STUDIO_PARAMETER_FLAGS {
75    fn from(value: ParameterFlags) -> Self {
76        value.bits()
77    }
78}
79
80bitflags::bitflags! {
81  #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
82  pub struct CommandCaptureFlags: c_uint {
83      const NORMAL = FMOD_STUDIO_COMMANDCAPTURE_NORMAL;
84      const FILE_FLUSH = FMOD_STUDIO_COMMANDCAPTURE_FILEFLUSH;
85      const SKIP_INITIAL_STATE = FMOD_STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE;
86  }
87}
88
89impl From<FMOD_STUDIO_COMMANDCAPTURE_FLAGS> for CommandCaptureFlags {
90    fn from(value: FMOD_STUDIO_COMMANDCAPTURE_FLAGS) -> Self {
91        CommandCaptureFlags::from_bits_truncate(value)
92    }
93}
94
95impl From<CommandCaptureFlags> for FMOD_STUDIO_COMMANDCAPTURE_FLAGS {
96    fn from(value: CommandCaptureFlags) -> Self {
97        value.bits()
98    }
99}
100
101bitflags::bitflags! {
102  #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
103  pub struct CommandReplayFlags: c_uint {
104      const NORMAL = FMOD_STUDIO_COMMANDCAPTURE_NORMAL;
105      const SKIP_CLEANUP = FMOD_STUDIO_COMMANDREPLAY_SKIP_CLEANUP;
106      const FAST_FORWARD = FMOD_STUDIO_COMMANDREPLAY_FAST_FORWARD;
107      const SKIP_BANK_LOAD = FMOD_STUDIO_COMMANDREPLAY_SKIP_BANK_LOAD;
108  }
109}
110
111impl From<FMOD_STUDIO_COMMANDREPLAY_FLAGS> for CommandReplayFlags {
112    fn from(value: FMOD_STUDIO_COMMANDREPLAY_FLAGS) -> Self {
113        CommandReplayFlags::from_bits_truncate(value)
114    }
115}
116
117impl From<CommandReplayFlags> for FMOD_STUDIO_COMMANDREPLAY_FLAGS {
118    fn from(value: CommandReplayFlags) -> Self {
119        value.bits()
120    }
121}
122
123bitflags::bitflags! {
124    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
125    pub struct EventCallbackMask: c_uint {
126        const CREATED = FMOD_STUDIO_EVENT_CALLBACK_CREATED;
127        const DESTROYED = FMOD_STUDIO_EVENT_CALLBACK_DESTROYED;
128        const STARTING = FMOD_STUDIO_EVENT_CALLBACK_STARTING;
129        const STARTED = FMOD_STUDIO_EVENT_CALLBACK_STARTED;
130        const RESTARTED = FMOD_STUDIO_EVENT_CALLBACK_RESTARTED;
131        const STOPPED = FMOD_STUDIO_EVENT_CALLBACK_STOPPED;
132        const START_FAILED = FMOD_STUDIO_EVENT_CALLBACK_START_FAILED;
133        const CREATE_PROGRAMMER_SOUND = FMOD_STUDIO_EVENT_CALLBACK_CREATE_PROGRAMMER_SOUND;
134        const DESTROY_PROGRAMMER_SOUND = FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND;
135        const PLUGIN_CREATED = FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_CREATED;
136        const PLUGIN_DESTROYED = FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_DESTROYED;
137        const TIMELINE_MARKER = FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_MARKER;
138        const TIMELINE_BEAT = FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_BEAT;
139        const SOUND_PLAYED = FMOD_STUDIO_EVENT_CALLBACK_SOUND_PLAYED;
140        const SOUND_STOPPED = FMOD_STUDIO_EVENT_CALLBACK_SOUND_STOPPED;
141        const REAL_TO_VIRTUAL = FMOD_STUDIO_EVENT_CALLBACK_REAL_TO_VIRTUAL;
142        const VIRTUAL_TO_REAL = FMOD_STUDIO_EVENT_CALLBACK_VIRTUAL_TO_REAL;
143        const START_EVENT_COMMAND = FMOD_STUDIO_EVENT_CALLBACK_START_EVENT_COMMAND;
144        const NESTED_TIMELINE_BEAT = FMOD_STUDIO_EVENT_CALLBACK_NESTED_TIMELINE_BEAT;
145        const ALL = FMOD_STUDIO_EVENT_CALLBACK_ALL;
146    }
147}
148
149impl From<FMOD_STUDIO_EVENT_CALLBACK_TYPE> for EventCallbackMask {
150    fn from(value: FMOD_STUDIO_EVENT_CALLBACK_TYPE) -> Self {
151        EventCallbackMask::from_bits_truncate(value)
152    }
153}
154
155impl From<EventCallbackMask> for FMOD_STUDIO_EVENT_CALLBACK_TYPE {
156    fn from(value: EventCallbackMask) -> Self {
157        value.bits()
158    }
159}
160
161bitflags::bitflags! {
162  #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
163  pub struct SystemCallbackMask: c_uint {
164      const PREUPDATE = FMOD_STUDIO_SYSTEM_CALLBACK_PREUPDATE;
165      const POSTUPDATE = FMOD_STUDIO_SYSTEM_CALLBACK_POSTUPDATE;
166      const BANK_UNLOAD = FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD;
167      const LIVEUPDATE_CONNECTED = FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_CONNECTED;
168      const LIVEUPDATE_DISCONNECTED = FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_DISCONNECTED;
169  }
170}
171
172impl From<FMOD_STUDIO_SYSTEM_CALLBACK_TYPE> for SystemCallbackMask {
173    fn from(value: FMOD_STUDIO_SYSTEM_CALLBACK_TYPE) -> Self {
174        SystemCallbackMask::from_bits_truncate(value)
175    }
176}
177
178impl From<SystemCallbackMask> for FMOD_STUDIO_SYSTEM_CALLBACK_TYPE {
179    fn from(value: SystemCallbackMask) -> Self {
180        value.bits()
181    }
182}