summaryrefslogtreecommitdiffhomepage
path: root/Stars45/SoundCard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Stars45/SoundCard.cpp')
-rw-r--r--Stars45/SoundCard.cpp103
1 files changed, 0 insertions, 103 deletions
diff --git a/Stars45/SoundCard.cpp b/Stars45/SoundCard.cpp
deleted file mode 100644
index 1e54cce..0000000
--- a/Stars45/SoundCard.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Starshatter: The Open Source Project
- Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
- Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
- Copyright (c) 1997-2006, Destroyer Studios LLC.
-
- AUTHOR: John DiCamillo
-
-
- OVERVIEW
- ========
- Abstract sound card class
-*/
-
-#include <mutex>
-
-#include "SoundCard.h"
-#include "Sound.h"
-
-// +--------------------------------------------------------------------+
-
-DWORD WINAPI SoundCardUpdateProc(LPVOID link);
-
-// +--------------------------------------------------------------------+
-
-SoundCard::SoundCard()
-: status(SC_UNINITIALIZED), hthread(0), shutdown(false)
-{
- DWORD thread_id = 0;
- hthread = CreateThread(0, 4096, SoundCardUpdateProc,
- (LPVOID) this, 0, &thread_id);
-}
-
-// +--------------------------------------------------------------------+
-
-SoundCard::~SoundCard()
-{
- shutdown = true;
-
- WaitForSingleObject(hthread, 500);
- CloseHandle(hthread);
- hthread = 0;
-
- sounds.destroy();
- status = SC_UNINITIALIZED;
-}
-
-// +--------------------------------------------------------------------+
-
-DWORD WINAPI SoundCardUpdateProc(LPVOID link)
-{
- SoundCard* card = (SoundCard*) link;
-
- if (card)
- return card->UpdateThread();
-
- return (DWORD) E_POINTER;
-}
-
-// +--------------------------------------------------------------------+
-
-DWORD
-SoundCard::UpdateThread()
-{
- while (!shutdown) {
- Update();
- Sleep(50);
- }
-
- return 0;
-}
-
-// +--------------------------------------------------------------------+
-
-void
-SoundCard::Update()
-{
- const std::lock_guard<std::mutex> lock(sync);
-
- ListIter<Sound> iter = sounds;
- while (++iter) {
- Sound* s = iter.value();
-
- s->Update();
-
- if (s->GetStatus() == Sound::DONE &&
- !(s->GetFlags() & Sound::LOCKED)) {
-
- delete iter.removeItem();
- }
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-SoundCard::AddSound(Sound* s)
-{
- const std::lock_guard<std::mutex> lock(sync);
-
- if (!sounds.contains(s))
- sounds.append(s);
-}
-