mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-04 12:47:56 +03:00
Temp commit. Sound
This commit is contained in:
+35
-34
@@ -13,10 +13,10 @@ void classes_process_init(classes_data* classes, const size_t classes_count, ren
|
||||
|
||||
for (size_t i = 0; i < classes_count; i++) {
|
||||
classes_data* c = &classes[i];
|
||||
lock_init(&c->data.lock);
|
||||
if (lock_check_init(&c->data.lock)
|
||||
c->data.lock = new lock;
|
||||
if (c->data.lock->check_init()
|
||||
&& c->flags & (CLASSES_INIT_AT_STARTUP | CLASSES_SHOW_AT_STARTUP) && c->init) {
|
||||
lock_lock(&c->data.lock);
|
||||
lock_lock(c->data.lock);
|
||||
if (c->init(&c->data, rctx))
|
||||
c->data.flags = CLASS_INIT;
|
||||
else
|
||||
@@ -25,16 +25,16 @@ void classes_process_init(classes_data* classes, const size_t classes_count, ren
|
||||
|
||||
if (~c->flags & CLASSES_SHOW_AT_STARTUP)
|
||||
enum_or(c->data.flags, CLASS_HIDDEN);
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
|
||||
if (lock_check_init(&c->data.lock)
|
||||
if (c->data.lock->check_init()
|
||||
&& c->flags & CLASSES_SHOW_AT_STARTUP) {
|
||||
lock_lock(&c->data.lock);
|
||||
lock_lock(c->data.lock);
|
||||
if (c->data.flags & CLASS_INIT && ((c->show && c->show(&c->data)) || !c->show)) {
|
||||
enum_and(c->data.flags, ~(CLASS_HIDE | CLASS_HIDDEN));
|
||||
}
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
|
||||
if (c->sub_classes && c->sub_classes_count)
|
||||
@@ -48,20 +48,20 @@ void classes_process_ctrl(classes_data* classes, const size_t classes_count) {
|
||||
|
||||
for (size_t i = 0; i < classes_count; i++) {
|
||||
classes_data* c = &classes[i];
|
||||
if (lock_check_init(&c->data.lock)) {
|
||||
if (c->data.lock->check_init()) {
|
||||
if (c->data.flags & CLASS_HIDE) {
|
||||
lock_lock(&c->data.lock);
|
||||
lock_lock(c->data.lock);
|
||||
if (~c->data.flags & CLASS_HIDDEN && ((c->hide && c->hide(&c->data)) || !c->hide)) {
|
||||
enum_and(c->data.flags, ~CLASS_HIDE);
|
||||
enum_or(c->data.flags, CLASS_HIDDEN);
|
||||
enum_and(c->data.flags, ~CLASS_HAS_PARENT);
|
||||
}
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
|
||||
if ((c->data.flags & CLASS_DISPOSE || (c->data.flags & CLASS_HIDDEN
|
||||
&& c->flags & CLASSES_DISPOSE_AT_HIDE))) {
|
||||
lock_lock(&c->data.lock);
|
||||
lock_lock(c->data.lock);
|
||||
if (~c->data.flags & CLASS_HIDDEN && ((c->hide && c->hide(&c->data)) || !c->hide)) {
|
||||
enum_and(c->data.flags, ~CLASS_HIDE);
|
||||
enum_or(c->data.flags, CLASS_HIDDEN);
|
||||
@@ -73,14 +73,14 @@ void classes_process_ctrl(classes_data* classes, const size_t classes_count) {
|
||||
enum_or(c->data.flags, CLASS_DISPOSED);
|
||||
c->data.imgui_focus = false;
|
||||
}
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_free(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
delete c->data.lock;
|
||||
}
|
||||
|
||||
if (c->data.flags & CLASS_INIT && c->ctrl) {
|
||||
lock_lock(&c->data.lock);
|
||||
lock_lock(c->data.lock);
|
||||
c->ctrl(&c->data);
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,11 +91,11 @@ void classes_process_ctrl(classes_data* classes, const size_t classes_count) {
|
||||
void classes_process_disp(classes_data* classes, size_t classes_count) {
|
||||
for (size_t i = 0; i < classes_count; i++) {
|
||||
classes_data* c = &classes[i];
|
||||
if (lock_check_init(&c->data.lock) && c->disp) {
|
||||
lock_lock(&c->data.lock);
|
||||
if (c->data.lock->check_init() && c->disp) {
|
||||
lock_lock(c->data.lock);
|
||||
if (c->data.flags & CLASS_INIT)
|
||||
c->disp(&c->data);
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
|
||||
if (c->sub_classes && c->sub_classes_count)
|
||||
@@ -109,11 +109,11 @@ void classes_process_drop(classes_data* classes, size_t classes_count, size_t co
|
||||
|
||||
for (size_t i = 0; i < classes_count; i++) {
|
||||
classes_data* c = &classes[i];
|
||||
if (lock_check_init(&c->data.lock) && c->drop) {
|
||||
lock_lock(&c->data.lock);
|
||||
if (c->data.lock->check_init() && c->drop) {
|
||||
lock_lock(c->data.lock);
|
||||
if (c->data.flags & CLASS_INIT)
|
||||
c->drop(&c->data, count, paths);
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
|
||||
if (c->sub_classes && c->sub_classes_count)
|
||||
@@ -127,14 +127,14 @@ void classes_process_imgui(classes_data* classes, const size_t classes_count) {
|
||||
|
||||
for (size_t i = 0; i < classes_count; i++) {
|
||||
classes_data* c = &classes[i];
|
||||
if (lock_check_init(&c->data.lock)) {
|
||||
lock_lock(&c->data.lock);
|
||||
if (c->data.lock->check_init()) {
|
||||
lock_lock(c->data.lock);
|
||||
if (~c->data.flags & CLASS_HIDDEN) {
|
||||
if (c->imgui)
|
||||
c->imgui(&c->data);
|
||||
input_locked |= c->data.imgui_focus;
|
||||
}
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
|
||||
classes_process_imgui(c->sub_classes, c->sub_classes_count);
|
||||
@@ -147,14 +147,14 @@ void classes_process_input(classes_data* classes, const size_t classes_count) {
|
||||
|
||||
for (size_t i = 0; i < classes_count; i++) {
|
||||
classes_data* c = &classes[i];
|
||||
if (lock_check_init(&c->data.lock)) {
|
||||
lock_lock(&c->data.lock);
|
||||
if (c->data.lock->check_init()) {
|
||||
lock_lock(c->data.lock);
|
||||
if (c->data.flags & CLASS_INIT) {
|
||||
if (c->input)
|
||||
c->input(&c->data);
|
||||
input_locked |= c->data.imgui_focus;
|
||||
}
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
|
||||
classes_process_input(c->sub_classes, c->sub_classes_count);
|
||||
@@ -167,11 +167,11 @@ void classes_process_sound(classes_data* classes, const size_t classes_count) {
|
||||
|
||||
for (size_t i = 0; i < classes_count; i++) {
|
||||
classes_data* c = &classes[i];
|
||||
if (lock_check_init(&c->data.lock) && c->sound) {
|
||||
lock_lock(&c->data.lock);
|
||||
if (c->data.lock->check_init() && c->sound) {
|
||||
lock_lock(c->data.lock);
|
||||
if (c->data.flags & CLASS_INIT)
|
||||
c->sound(&c->data);
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
|
||||
classes_process_sound(c->sub_classes, c->sub_classes_count);
|
||||
@@ -184,8 +184,8 @@ void classes_process_dispose(classes_data* classes, const size_t classes_count)
|
||||
|
||||
for (size_t i = 0; i < classes_count; i++) {
|
||||
classes_data* c = &classes[i];
|
||||
if (lock_check_init(&c->data.lock)) {
|
||||
lock_lock(&c->data.lock);
|
||||
if (c->data.lock->check_init()) {
|
||||
lock_lock(c->data.lock);
|
||||
if (~c->data.flags & CLASS_HIDDEN && ((c->hide && c->hide(&c->data)) || !c->hide)) {
|
||||
enum_and(c->data.flags, ~CLASS_HIDE);
|
||||
enum_or(c->data.flags, CLASS_HIDDEN);
|
||||
@@ -197,9 +197,10 @@ void classes_process_dispose(classes_data* classes, const size_t classes_count)
|
||||
enum_or(c->data.flags, CLASS_DISPOSED);
|
||||
c->data.imgui_focus = false;
|
||||
}
|
||||
lock_unlock(&c->data.lock);
|
||||
lock_unlock(c->data.lock);
|
||||
}
|
||||
lock_free(&c->data.lock);
|
||||
delete c->data.lock;
|
||||
c->data.lock = 0;
|
||||
|
||||
classes_process_dispose(c->sub_classes, c->sub_classes_count);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user