Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
This commit is contained in:
@ -47,17 +47,14 @@
|
||||
|
||||
AudioDriver *AudioDriver::singleton = nullptr;
|
||||
AudioDriver *AudioDriver::get_singleton() {
|
||||
|
||||
return singleton;
|
||||
}
|
||||
|
||||
void AudioDriver::set_singleton() {
|
||||
|
||||
singleton = this;
|
||||
}
|
||||
|
||||
void AudioDriver::audio_server_process(int p_frames, int32_t *p_buffer, bool p_update_mix_time) {
|
||||
|
||||
if (p_update_mix_time)
|
||||
update_mix_time(p_frames);
|
||||
|
||||
@ -66,26 +63,22 @@ void AudioDriver::audio_server_process(int p_frames, int32_t *p_buffer, bool p_u
|
||||
}
|
||||
|
||||
void AudioDriver::update_mix_time(int p_frames) {
|
||||
|
||||
_last_mix_frames = p_frames;
|
||||
if (OS::get_singleton())
|
||||
_last_mix_time = OS::get_singleton()->get_ticks_usec();
|
||||
}
|
||||
|
||||
double AudioDriver::get_time_since_last_mix() const {
|
||||
|
||||
return (OS::get_singleton()->get_ticks_usec() - _last_mix_time) / 1000000.0;
|
||||
}
|
||||
|
||||
double AudioDriver::get_time_to_next_mix() const {
|
||||
|
||||
double total = (OS::get_singleton()->get_ticks_usec() - _last_mix_time) / 1000000.0;
|
||||
double mix_buffer = _last_mix_frames / (double)get_mix_rate();
|
||||
return mix_buffer - total;
|
||||
}
|
||||
|
||||
void AudioDriver::input_buffer_init(int driver_buffer_frames) {
|
||||
|
||||
const int input_buffer_channels = 2;
|
||||
input_buffer.resize(driver_buffer_frames * input_buffer_channels * 4);
|
||||
input_position = 0;
|
||||
@ -93,7 +86,6 @@ void AudioDriver::input_buffer_init(int driver_buffer_frames) {
|
||||
}
|
||||
|
||||
void AudioDriver::input_buffer_write(int32_t sample) {
|
||||
|
||||
if ((int)input_position < input_buffer.size()) {
|
||||
input_buffer.write[input_position++] = sample;
|
||||
if ((int)input_position >= input_buffer.size()) {
|
||||
@ -157,7 +149,6 @@ Array AudioDriver::capture_get_device_list() {
|
||||
}
|
||||
|
||||
AudioDriver::AudioDriver() {
|
||||
|
||||
_last_mix_time = 0;
|
||||
_last_mix_frames = 0;
|
||||
input_position = 0;
|
||||
@ -175,7 +166,6 @@ AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS] = {
|
||||
int AudioDriverManager::driver_count = 1;
|
||||
|
||||
void AudioDriverManager::add_driver(AudioDriver *p_driver) {
|
||||
|
||||
ERR_FAIL_COND(driver_count >= MAX_DRIVERS);
|
||||
drivers[driver_count - 1] = p_driver;
|
||||
|
||||
@ -184,7 +174,6 @@ void AudioDriverManager::add_driver(AudioDriver *p_driver) {
|
||||
}
|
||||
|
||||
int AudioDriverManager::get_driver_count() {
|
||||
|
||||
return driver_count;
|
||||
}
|
||||
|
||||
@ -221,7 +210,6 @@ void AudioDriverManager::initialize(int p_driver) {
|
||||
}
|
||||
|
||||
AudioDriver *AudioDriverManager::get_driver(int p_driver) {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_driver, driver_count, nullptr);
|
||||
return drivers[p_driver];
|
||||
}
|
||||
@ -232,7 +220,6 @@ AudioDriver *AudioDriverManager::get_driver(int p_driver) {
|
||||
//////////////////////////////////////////////
|
||||
|
||||
void AudioServer::_driver_process(int p_frames, int32_t *p_buffer) {
|
||||
|
||||
int todo = p_frames;
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
@ -246,7 +233,6 @@ void AudioServer::_driver_process(int p_frames, int32_t *p_buffer) {
|
||||
}
|
||||
|
||||
while (todo) {
|
||||
|
||||
if (to_mix == 0) {
|
||||
_mix_step();
|
||||
}
|
||||
@ -261,13 +247,10 @@ void AudioServer::_driver_process(int p_frames, int32_t *p_buffer) {
|
||||
//master master, send to output
|
||||
int cs = master->channels.size();
|
||||
for (int k = 0; k < cs; k++) {
|
||||
|
||||
if (master->channels[k].active) {
|
||||
|
||||
const AudioFrame *buf = master->channels[k].buffer.ptr();
|
||||
|
||||
for (int j = 0; j < to_copy; j++) {
|
||||
|
||||
float l = CLAMP(buf[from + j].l, -1.0, 1.0);
|
||||
int32_t vl = l * ((1 << 20) - 1);
|
||||
int32_t vl2 = (vl < 0 ? -1 : 1) * (ABS(vl) << 11);
|
||||
@ -281,7 +264,6 @@ void AudioServer::_driver_process(int p_frames, int32_t *p_buffer) {
|
||||
|
||||
} else {
|
||||
for (int j = 0; j < to_copy; j++) {
|
||||
|
||||
p_buffer[(from_buf + j) * (cs * 2) + k * 2 + 0] = 0;
|
||||
p_buffer[(from_buf + j) * (cs * 2) + k * 2 + 1] = 0;
|
||||
}
|
||||
@ -298,14 +280,12 @@ void AudioServer::_driver_process(int p_frames, int32_t *p_buffer) {
|
||||
}
|
||||
|
||||
void AudioServer::_mix_step() {
|
||||
|
||||
bool solo_mode = false;
|
||||
|
||||
for (int i = 0; i < buses.size(); i++) {
|
||||
Bus *bus = buses[i];
|
||||
bus->index_cache = i; //might be moved around by editor, so..
|
||||
for (int k = 0; k < bus->channels.size(); k++) {
|
||||
|
||||
bus->channels.write[k].used = false;
|
||||
}
|
||||
|
||||
@ -314,7 +294,6 @@ void AudioServer::_mix_step() {
|
||||
solo_mode = true;
|
||||
bus->soloed = true;
|
||||
do {
|
||||
|
||||
if (bus != buses[0]) {
|
||||
//everything has a send save for master bus
|
||||
if (!bus_map.has(bus->send)) {
|
||||
@ -340,7 +319,6 @@ void AudioServer::_mix_step() {
|
||||
|
||||
//make callbacks for mixing the audio
|
||||
for (Set<CallbackItem>::Element *E = callbacks.front(); E; E = E->next()) {
|
||||
|
||||
E->get().callback(E->get().userdata);
|
||||
}
|
||||
|
||||
@ -349,13 +327,11 @@ void AudioServer::_mix_step() {
|
||||
Bus *bus = buses[i];
|
||||
|
||||
for (int k = 0; k < bus->channels.size(); k++) {
|
||||
|
||||
if (bus->channels[k].active && !bus->channels[k].used) {
|
||||
//buffer was not used, but it's still active, so it must be cleaned
|
||||
AudioFrame *buf = bus->channels.write[k].buffer.ptrw();
|
||||
|
||||
for (uint32_t j = 0; j < buffer_size; j++) {
|
||||
|
||||
buf[j] = AudioFrame(0, 0);
|
||||
}
|
||||
}
|
||||
@ -364,7 +340,6 @@ void AudioServer::_mix_step() {
|
||||
//process effects
|
||||
if (!bus->bypass) {
|
||||
for (int j = 0; j < bus->effects.size(); j++) {
|
||||
|
||||
if (!bus->effects[j].enabled)
|
||||
continue;
|
||||
|
||||
@ -373,7 +348,6 @@ void AudioServer::_mix_step() {
|
||||
#endif
|
||||
|
||||
for (int k = 0; k < bus->channels.size(); k++) {
|
||||
|
||||
if (!(bus->channels[k].active || bus->channels[k].effect_instances[j]->process_silence()))
|
||||
continue;
|
||||
bus->channels.write[k].effect_instances.write[j]->process(bus->channels[k].buffer.ptr(), temp_buffer.write[k].ptrw(), buffer_size);
|
||||
@ -381,7 +355,6 @@ void AudioServer::_mix_step() {
|
||||
|
||||
//swap buffers, so internal buffer always has the right data
|
||||
for (int k = 0; k < bus->channels.size(); k++) {
|
||||
|
||||
if (!(buses[i]->channels[k].active || bus->channels[k].effect_instances[j]->process_silence()))
|
||||
continue;
|
||||
SWAP(bus->channels.write[k].buffer, temp_buffer.write[k]);
|
||||
@ -410,7 +383,6 @@ void AudioServer::_mix_step() {
|
||||
}
|
||||
|
||||
for (int k = 0; k < bus->channels.size(); k++) {
|
||||
|
||||
if (!bus->channels[k].active)
|
||||
continue;
|
||||
|
||||
@ -432,7 +404,6 @@ void AudioServer::_mix_step() {
|
||||
|
||||
//apply volume and compute peak
|
||||
for (uint32_t j = 0; j < buffer_size; j++) {
|
||||
|
||||
buf[j] *= volume;
|
||||
|
||||
float l = ABS(buf[j].l);
|
||||
@ -482,7 +453,6 @@ bool AudioServer::thread_has_channel_mix_buffer(int p_bus, int p_buffer) const {
|
||||
}
|
||||
|
||||
AudioFrame *AudioServer::thread_get_channel_mix_buffer(int p_bus, int p_buffer) {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), nullptr);
|
||||
ERR_FAIL_INDEX_V(p_buffer, buses[p_bus]->channels.size(), nullptr);
|
||||
|
||||
@ -501,12 +471,10 @@ AudioFrame *AudioServer::thread_get_channel_mix_buffer(int p_bus, int p_buffer)
|
||||
}
|
||||
|
||||
int AudioServer::thread_get_mix_buffer_size() const {
|
||||
|
||||
return buffer_size;
|
||||
}
|
||||
|
||||
int AudioServer::thread_find_bus_index(const StringName &p_name) {
|
||||
|
||||
if (bus_map.has(p_name)) {
|
||||
return bus_map[p_name]->index_cache;
|
||||
} else {
|
||||
@ -515,7 +483,6 @@ int AudioServer::thread_find_bus_index(const StringName &p_name) {
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_count(int p_count) {
|
||||
|
||||
ERR_FAIL_COND(p_count < 1);
|
||||
ERR_FAIL_INDEX(p_count, 256);
|
||||
|
||||
@ -534,14 +501,11 @@ void AudioServer::set_bus_count(int p_count) {
|
||||
buses.resize(p_count);
|
||||
|
||||
for (int i = cb; i < buses.size(); i++) {
|
||||
|
||||
String attempt = "New Bus";
|
||||
int attempts = 1;
|
||||
while (true) {
|
||||
|
||||
bool name_free = true;
|
||||
for (int j = 0; j < i; j++) {
|
||||
|
||||
if (buses[j]->name == attempt) {
|
||||
name_free = false;
|
||||
break;
|
||||
@ -579,7 +543,6 @@ void AudioServer::set_bus_count(int p_count) {
|
||||
}
|
||||
|
||||
void AudioServer::remove_bus(int p_index) {
|
||||
|
||||
ERR_FAIL_INDEX(p_index, buses.size());
|
||||
ERR_FAIL_COND(p_index == 0);
|
||||
|
||||
@ -595,7 +558,6 @@ void AudioServer::remove_bus(int p_index) {
|
||||
}
|
||||
|
||||
void AudioServer::add_bus(int p_at_pos) {
|
||||
|
||||
MARK_EDITED
|
||||
|
||||
if (p_at_pos >= buses.size()) {
|
||||
@ -610,10 +572,8 @@ void AudioServer::add_bus(int p_at_pos) {
|
||||
String attempt = "New Bus";
|
||||
int attempts = 1;
|
||||
while (true) {
|
||||
|
||||
bool name_free = true;
|
||||
for (int j = 0; j < buses.size(); j++) {
|
||||
|
||||
if (buses[j]->name == attempt) {
|
||||
name_free = false;
|
||||
break;
|
||||
@ -650,7 +610,6 @@ void AudioServer::add_bus(int p_at_pos) {
|
||||
}
|
||||
|
||||
void AudioServer::move_bus(int p_bus, int p_to_pos) {
|
||||
|
||||
ERR_FAIL_COND(p_bus < 1 || p_bus >= buses.size());
|
||||
ERR_FAIL_COND(p_to_pos != -1 && (p_to_pos < 1 || p_to_pos > buses.size()));
|
||||
|
||||
@ -674,12 +633,10 @@ void AudioServer::move_bus(int p_bus, int p_to_pos) {
|
||||
}
|
||||
|
||||
int AudioServer::get_bus_count() const {
|
||||
|
||||
return buses.size();
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_name(int p_bus, const String &p_name) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
if (p_bus == 0 && p_name != "Master")
|
||||
return; //bus 0 is always master
|
||||
@ -697,10 +654,8 @@ void AudioServer::set_bus_name(int p_bus, const String &p_name) {
|
||||
int attempts = 1;
|
||||
|
||||
while (true) {
|
||||
|
||||
bool name_free = true;
|
||||
for (int i = 0; i < buses.size(); i++) {
|
||||
|
||||
if (buses[i]->name == attempt) {
|
||||
name_free = false;
|
||||
break;
|
||||
@ -722,7 +677,6 @@ void AudioServer::set_bus_name(int p_bus, const String &p_name) {
|
||||
emit_signal("bus_layout_changed");
|
||||
}
|
||||
String AudioServer::get_bus_name(int p_bus) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), String());
|
||||
return buses[p_bus]->name;
|
||||
}
|
||||
@ -737,7 +691,6 @@ int AudioServer::get_bus_index(const StringName &p_bus_name) const {
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_volume_db(int p_bus, float p_volume_db) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
|
||||
MARK_EDITED
|
||||
@ -745,19 +698,16 @@ void AudioServer::set_bus_volume_db(int p_bus, float p_volume_db) {
|
||||
buses[p_bus]->volume_db = p_volume_db;
|
||||
}
|
||||
float AudioServer::get_bus_volume_db(int p_bus) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), 0);
|
||||
return buses[p_bus]->volume_db;
|
||||
}
|
||||
|
||||
int AudioServer::get_bus_channels(int p_bus) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), 0);
|
||||
return buses[p_bus]->channels.size();
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_send(int p_bus, const StringName &p_send) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
|
||||
MARK_EDITED
|
||||
@ -766,13 +716,11 @@ void AudioServer::set_bus_send(int p_bus, const StringName &p_send) {
|
||||
}
|
||||
|
||||
StringName AudioServer::get_bus_send(int p_bus) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), StringName());
|
||||
return buses[p_bus]->send;
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_solo(int p_bus, bool p_enable) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
|
||||
MARK_EDITED
|
||||
@ -781,14 +729,12 @@ void AudioServer::set_bus_solo(int p_bus, bool p_enable) {
|
||||
}
|
||||
|
||||
bool AudioServer::is_bus_solo(int p_bus) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), false);
|
||||
|
||||
return buses[p_bus]->solo;
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_mute(int p_bus, bool p_enable) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
|
||||
MARK_EDITED
|
||||
@ -796,14 +742,12 @@ void AudioServer::set_bus_mute(int p_bus, bool p_enable) {
|
||||
buses[p_bus]->mute = p_enable;
|
||||
}
|
||||
bool AudioServer::is_bus_mute(int p_bus) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), false);
|
||||
|
||||
return buses[p_bus]->mute;
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_bypass_effects(int p_bus, bool p_enable) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
|
||||
MARK_EDITED
|
||||
@ -811,14 +755,12 @@ void AudioServer::set_bus_bypass_effects(int p_bus, bool p_enable) {
|
||||
buses[p_bus]->bypass = p_enable;
|
||||
}
|
||||
bool AudioServer::is_bus_bypassing_effects(int p_bus) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), false);
|
||||
|
||||
return buses[p_bus]->bypass;
|
||||
}
|
||||
|
||||
void AudioServer::_update_bus_effects(int p_bus) {
|
||||
|
||||
for (int i = 0; i < buses[p_bus]->channels.size(); i++) {
|
||||
buses.write[p_bus]->channels.write[i].effect_instances.resize(buses[p_bus]->effects.size());
|
||||
for (int j = 0; j < buses[p_bus]->effects.size(); j++) {
|
||||
@ -832,7 +774,6 @@ void AudioServer::_update_bus_effects(int p_bus) {
|
||||
}
|
||||
|
||||
void AudioServer::add_bus_effect(int p_bus, const Ref<AudioEffect> &p_effect, int p_at_pos) {
|
||||
|
||||
ERR_FAIL_COND(p_effect.is_null());
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
|
||||
@ -860,7 +801,6 @@ void AudioServer::add_bus_effect(int p_bus, const Ref<AudioEffect> &p_effect, in
|
||||
}
|
||||
|
||||
void AudioServer::remove_bus_effect(int p_bus, int p_effect) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
|
||||
MARK_EDITED
|
||||
@ -874,14 +814,12 @@ void AudioServer::remove_bus_effect(int p_bus, int p_effect) {
|
||||
}
|
||||
|
||||
int AudioServer::get_bus_effect_count(int p_bus) {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), 0);
|
||||
|
||||
return buses[p_bus]->effects.size();
|
||||
}
|
||||
|
||||
Ref<AudioEffectInstance> AudioServer::get_bus_effect_instance(int p_bus, int p_effect, int p_channel) {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), Ref<AudioEffectInstance>());
|
||||
ERR_FAIL_INDEX_V(p_effect, buses[p_bus]->effects.size(), Ref<AudioEffectInstance>());
|
||||
ERR_FAIL_INDEX_V(p_channel, buses[p_bus]->channels.size(), Ref<AudioEffectInstance>());
|
||||
@ -890,7 +828,6 @@ Ref<AudioEffectInstance> AudioServer::get_bus_effect_instance(int p_bus, int p_e
|
||||
}
|
||||
|
||||
Ref<AudioEffect> AudioServer::get_bus_effect(int p_bus, int p_effect) {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), Ref<AudioEffect>());
|
||||
ERR_FAIL_INDEX_V(p_effect, buses[p_bus]->effects.size(), Ref<AudioEffect>());
|
||||
|
||||
@ -898,7 +835,6 @@ Ref<AudioEffect> AudioServer::get_bus_effect(int p_bus, int p_effect) {
|
||||
}
|
||||
|
||||
void AudioServer::swap_bus_effects(int p_bus, int p_effect, int p_by_effect) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
ERR_FAIL_INDEX(p_effect, buses[p_bus]->effects.size());
|
||||
ERR_FAIL_INDEX(p_by_effect, buses[p_bus]->effects.size());
|
||||
@ -912,7 +848,6 @@ void AudioServer::swap_bus_effects(int p_bus, int p_effect, int p_by_effect) {
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_effect_enabled(int p_bus, int p_effect, bool p_enabled) {
|
||||
|
||||
ERR_FAIL_INDEX(p_bus, buses.size());
|
||||
ERR_FAIL_INDEX(p_effect, buses[p_bus]->effects.size());
|
||||
|
||||
@ -921,21 +856,18 @@ void AudioServer::set_bus_effect_enabled(int p_bus, int p_effect, bool p_enabled
|
||||
buses.write[p_bus]->effects.write[p_effect].enabled = p_enabled;
|
||||
}
|
||||
bool AudioServer::is_bus_effect_enabled(int p_bus, int p_effect) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), false);
|
||||
ERR_FAIL_INDEX_V(p_effect, buses[p_bus]->effects.size(), false);
|
||||
return buses[p_bus]->effects[p_effect].enabled;
|
||||
}
|
||||
|
||||
float AudioServer::get_bus_peak_volume_left_db(int p_bus, int p_channel) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), 0);
|
||||
ERR_FAIL_INDEX_V(p_channel, buses[p_bus]->channels.size(), 0);
|
||||
|
||||
return buses[p_bus]->channels[p_channel].peak_volume.l;
|
||||
}
|
||||
float AudioServer::get_bus_peak_volume_right_db(int p_bus, int p_channel) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), 0);
|
||||
ERR_FAIL_INDEX_V(p_channel, buses[p_bus]->channels.size(), 0);
|
||||
|
||||
@ -943,7 +875,6 @@ float AudioServer::get_bus_peak_volume_right_db(int p_bus, int p_channel) const
|
||||
}
|
||||
|
||||
bool AudioServer::is_bus_channel_active(int p_bus, int p_channel) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_bus, buses.size(), false);
|
||||
ERR_FAIL_INDEX_V(p_channel, buses[p_bus]->channels.size(), false);
|
||||
|
||||
@ -951,11 +882,9 @@ bool AudioServer::is_bus_channel_active(int p_bus, int p_channel) const {
|
||||
}
|
||||
|
||||
void AudioServer::set_global_rate_scale(float p_scale) {
|
||||
|
||||
global_rate_scale = p_scale;
|
||||
}
|
||||
float AudioServer::get_global_rate_scale() const {
|
||||
|
||||
return global_rate_scale;
|
||||
}
|
||||
|
||||
@ -976,7 +905,6 @@ void AudioServer::init_channels_and_buffers() {
|
||||
}
|
||||
|
||||
void AudioServer::init() {
|
||||
|
||||
channel_disable_threshold_db = GLOBAL_DEF_RST("audio/channel_disable_threshold_db", -60.0);
|
||||
channel_disable_frames = float(GLOBAL_DEF_RST("audio/channel_disable_time", 2.0)) * get_mix_rate();
|
||||
ProjectSettings::get_singleton()->set_custom_property_info("audio/channel_disable_time", PropertyInfo(Variant::FLOAT, "audio/channel_disable_time", PROPERTY_HINT_RANGE, "0,5,0.01,or_greater"));
|
||||
@ -1001,7 +929,6 @@ void AudioServer::init() {
|
||||
void AudioServer::update() {
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (EngineDebugger::is_profiling("servers")) {
|
||||
|
||||
// Driver time includes server time + effects times
|
||||
// Server time includes effects times
|
||||
uint64_t driver_time = AudioDriver::get_singleton()->get_profiling_time();
|
||||
@ -1061,13 +988,11 @@ void AudioServer::update() {
|
||||
#endif
|
||||
|
||||
for (Set<CallbackItem>::Element *E = update_callbacks.front(); E; E = E->next()) {
|
||||
|
||||
E->get().callback(E->get().userdata);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioServer::load_default_bus_layout() {
|
||||
|
||||
String layout_path = ProjectSettings::get_singleton()->get("audio/default_bus_layout");
|
||||
|
||||
if (ResourceLoader::exists(layout_path)) {
|
||||
@ -1079,7 +1004,6 @@ void AudioServer::load_default_bus_layout() {
|
||||
}
|
||||
|
||||
void AudioServer::finish() {
|
||||
|
||||
for (int i = 0; i < AudioDriverManager::get_driver_count(); i++) {
|
||||
AudioDriverManager::get_driver(i)->finish();
|
||||
}
|
||||
@ -1094,45 +1018,36 @@ void AudioServer::finish() {
|
||||
/* MISC config */
|
||||
|
||||
void AudioServer::lock() {
|
||||
|
||||
AudioDriver::get_singleton()->lock();
|
||||
}
|
||||
void AudioServer::unlock() {
|
||||
|
||||
AudioDriver::get_singleton()->unlock();
|
||||
}
|
||||
|
||||
AudioServer::SpeakerMode AudioServer::get_speaker_mode() const {
|
||||
|
||||
return (AudioServer::SpeakerMode)AudioDriver::get_singleton()->get_speaker_mode();
|
||||
}
|
||||
float AudioServer::get_mix_rate() const {
|
||||
|
||||
return AudioDriver::get_singleton()->get_mix_rate();
|
||||
}
|
||||
|
||||
float AudioServer::read_output_peak_db() const {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
AudioServer *AudioServer::get_singleton() {
|
||||
|
||||
return singleton;
|
||||
}
|
||||
|
||||
double AudioServer::get_output_latency() const {
|
||||
|
||||
return AudioDriver::get_singleton()->get_latency();
|
||||
}
|
||||
|
||||
double AudioServer::get_time_to_next_mix() const {
|
||||
|
||||
return AudioDriver::get_singleton()->get_time_to_next_mix();
|
||||
}
|
||||
|
||||
double AudioServer::get_time_since_last_mix() const {
|
||||
|
||||
return AudioDriver::get_singleton()->get_time_since_last_mix();
|
||||
}
|
||||
|
||||
@ -1148,7 +1063,6 @@ void AudioServer::add_callback(AudioCallback p_callback, void *p_userdata) {
|
||||
}
|
||||
|
||||
void AudioServer::remove_callback(AudioCallback p_callback, void *p_userdata) {
|
||||
|
||||
lock();
|
||||
CallbackItem ci;
|
||||
ci.callback = p_callback;
|
||||
@ -1167,7 +1081,6 @@ void AudioServer::add_update_callback(AudioCallback p_callback, void *p_userdata
|
||||
}
|
||||
|
||||
void AudioServer::remove_update_callback(AudioCallback p_callback, void *p_userdata) {
|
||||
|
||||
lock();
|
||||
CallbackItem ci;
|
||||
ci.callback = p_callback;
|
||||
@ -1177,7 +1090,6 @@ void AudioServer::remove_update_callback(AudioCallback p_callback, void *p_userd
|
||||
}
|
||||
|
||||
void AudioServer::set_bus_layout(const Ref<AudioBusLayout> &p_bus_layout) {
|
||||
|
||||
ERR_FAIL_COND(p_bus_layout.is_null() || p_bus_layout->buses.size() == 0);
|
||||
|
||||
lock();
|
||||
@ -1201,11 +1113,9 @@ void AudioServer::set_bus_layout(const Ref<AudioBusLayout> &p_bus_layout) {
|
||||
bus->volume_db = p_bus_layout->buses[i].volume_db;
|
||||
|
||||
for (int j = 0; j < p_bus_layout->buses[i].effects.size(); j++) {
|
||||
|
||||
Ref<AudioEffect> fx = p_bus_layout->buses[i].effects[j].effect;
|
||||
|
||||
if (fx.is_valid()) {
|
||||
|
||||
Bus::Effect bfx;
|
||||
bfx.effect = fx;
|
||||
bfx.enabled = p_bus_layout->buses[i].effects[j].enabled;
|
||||
@ -1229,14 +1139,12 @@ void AudioServer::set_bus_layout(const Ref<AudioBusLayout> &p_bus_layout) {
|
||||
}
|
||||
|
||||
Ref<AudioBusLayout> AudioServer::generate_bus_layout() const {
|
||||
|
||||
Ref<AudioBusLayout> state;
|
||||
state.instance();
|
||||
|
||||
state->buses.resize(buses.size());
|
||||
|
||||
for (int i = 0; i < buses.size(); i++) {
|
||||
|
||||
state->buses.write[i].name = buses[i]->name;
|
||||
state->buses.write[i].send = buses[i]->send;
|
||||
state->buses.write[i].mute = buses[i]->mute;
|
||||
@ -1255,37 +1163,30 @@ Ref<AudioBusLayout> AudioServer::generate_bus_layout() const {
|
||||
}
|
||||
|
||||
Array AudioServer::get_device_list() {
|
||||
|
||||
return AudioDriver::get_singleton()->get_device_list();
|
||||
}
|
||||
|
||||
String AudioServer::get_device() {
|
||||
|
||||
return AudioDriver::get_singleton()->get_device();
|
||||
}
|
||||
|
||||
void AudioServer::set_device(String device) {
|
||||
|
||||
AudioDriver::get_singleton()->set_device(device);
|
||||
}
|
||||
|
||||
Array AudioServer::capture_get_device_list() {
|
||||
|
||||
return AudioDriver::get_singleton()->capture_get_device_list();
|
||||
}
|
||||
|
||||
String AudioServer::capture_get_device() {
|
||||
|
||||
return AudioDriver::get_singleton()->capture_get_device();
|
||||
}
|
||||
|
||||
void AudioServer::capture_set_device(const String &p_name) {
|
||||
|
||||
AudioDriver::get_singleton()->capture_set_device(p_name);
|
||||
}
|
||||
|
||||
void AudioServer::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_bus_count", "amount"), &AudioServer::set_bus_count);
|
||||
ClassDB::bind_method(D_METHOD("get_bus_count"), &AudioServer::get_bus_count);
|
||||
|
||||
@ -1364,7 +1265,6 @@ void AudioServer::_bind_methods() {
|
||||
}
|
||||
|
||||
AudioServer::AudioServer() {
|
||||
|
||||
singleton = this;
|
||||
mix_frames = 0;
|
||||
channel_count = 0;
|
||||
@ -1378,14 +1278,12 @@ AudioServer::AudioServer() {
|
||||
}
|
||||
|
||||
AudioServer::~AudioServer() {
|
||||
|
||||
singleton = nullptr;
|
||||
}
|
||||
|
||||
/////////////////////////////////
|
||||
|
||||
bool AudioBusLayout::_set(const StringName &p_name, const Variant &p_value) {
|
||||
|
||||
String s = p_name;
|
||||
if (s.begins_with("bus/")) {
|
||||
int index = s.get_slice("/", 1).to_int();
|
||||
@ -1438,10 +1336,8 @@ bool AudioBusLayout::_set(const StringName &p_name, const Variant &p_value) {
|
||||
}
|
||||
|
||||
bool AudioBusLayout::_get(const StringName &p_name, Variant &r_ret) const {
|
||||
|
||||
String s = p_name;
|
||||
if (s.begins_with("bus/")) {
|
||||
|
||||
int index = s.get_slice("/", 1).to_int();
|
||||
if (index < 0 || index >= buses.size())
|
||||
return false;
|
||||
@ -1490,7 +1386,6 @@ bool AudioBusLayout::_get(const StringName &p_name, Variant &r_ret) const {
|
||||
return false;
|
||||
}
|
||||
void AudioBusLayout::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||
|
||||
for (int i = 0; i < buses.size(); i++) {
|
||||
p_list->push_back(PropertyInfo(Variant::STRING, "bus/" + itos(i) + "/name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL));
|
||||
p_list->push_back(PropertyInfo(Variant::BOOL, "bus/" + itos(i) + "/solo", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL));
|
||||
@ -1507,7 +1402,6 @@ void AudioBusLayout::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||
}
|
||||
|
||||
AudioBusLayout::AudioBusLayout() {
|
||||
|
||||
buses.resize(1);
|
||||
buses.write[0].name = "Master";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user