aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alu.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2021-04-25 14:29:21 -0700
committerChris Robinson <[email protected]>2021-04-25 14:29:21 -0700
commit8d09d03ed363ab1735b1933588d8242ba85ddf10 (patch)
tree515b4149211d29b04f7076ee943bed6bb62d0a90 /alc/alu.cpp
parent0fe38c053d8dd827e774fbe0aef121e7aa0a0f28 (diff)
Move async_event.h to core
Diffstat (limited to 'alc/alu.cpp')
-rw-r--r--alc/alu.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/alc/alu.cpp b/alc/alu.cpp
index 7221ce27..a97bc18b 100644
--- a/alc/alu.cpp
+++ b/alc/alu.cpp
@@ -50,10 +50,10 @@
#include "alnumeric.h"
#include "alspan.h"
#include "alstring.h"
-#include "async_event.h"
#include "atomic.h"
#include "bformatdec.h"
#include "core/ambidefs.h"
+#include "core/async_event.h"
#include "core/bs2b.h"
#include "core/bsinc_tables.h"
#include "core/cpu_caps.h"
@@ -1581,7 +1581,24 @@ void SendSourceStateEvent(ContextBase *context, uint id, VChangeState state)
AsyncEvent *evt{::new(evt_vec.first.buf) AsyncEvent{EventType_SourceStateChange}};
evt->u.srcstate.id = id;
- evt->u.srcstate.state = state;
+ switch(state)
+ {
+ case VChangeState::Reset:
+ evt->u.srcstate.state = AsyncEvent::SrcState::Reset;
+ break;
+ case VChangeState::Stop:
+ evt->u.srcstate.state = AsyncEvent::SrcState::Stop;
+ break;
+ case VChangeState::Play:
+ evt->u.srcstate.state = AsyncEvent::SrcState::Play;
+ break;
+ case VChangeState::Pause:
+ evt->u.srcstate.state = AsyncEvent::SrcState::Pause;
+ break;
+ /* Shouldn't happen. */
+ case VChangeState::Restart:
+ ASSUME(0);
+ }
ring->writeAdvance(1);
}