| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #include "../pch/pch.h"
- #include "CVoiceWorker.h"
- #include "mmsystem.h"
- void CVoiceWorker::Start()
- {
- m_is_work = true;
- m_nStopNum = 0;
- //处理声音提醒
- std::thread(&CVoiceWorker::HandleVoice, this).detach();
- }
- void CVoiceWorker::Stop()
- {
- m_is_work = false;
- m_voice_mutex.lock();
- while (!m_voice_queue.empty())
- {
- m_voice_queue.pop();
- }
- m_voice_mutex.unlock();
- }
- void CVoiceWorker::AddVoice(int voice_type)
- {
- m_voice_mutex.lock();
- m_voice_queue.push(voice_type);
- m_voice_mutex.unlock();
- }
- void CVoiceWorker::HandleVoice()
- {
- while (m_is_work)
- {
- m_voice_mutex.lock();
- if (m_voice_queue.empty())
- {
- m_voice_mutex.unlock();
- CSystem::my_sleep(1);
- continue;
- }
- int voice_type = m_voice_queue.front();
- m_voice_queue.pop();
- m_voice_mutex.unlock();
- if (voice_type == 1)
- {
- wstring path = CSystem::GetProgramDir() + L"\\music\\waimai_new.wav";
- PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
- }
- else if (voice_type == 2)
- {
- wstring path = CSystem::GetProgramDir() + L"\\music\\waimai_new_auto.wav";
- PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
- }
- else if (voice_type == 3)
- {
- wstring path = CSystem::GetProgramDir() + L"\\music\\waimai_quxiao.wav";
- PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
- }
- else if (voice_type == 4)
- {
- wstring path = CSystem::GetProgramDir() + L"\\music\\waimai_tuikuan.wav";
- PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
- }
- else if (voice_type == 5)
- {
- wstring path = CSystem::GetProgramDir() + L"\\music\\diannei_new.wav";
- PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
- }
- //8秒内最多播放一次
- CSystem::my_sleep(8);
- }
- AddStopNum();
- }
- void CVoiceWorker::AddStopNum()
- {
- m_nStopNumMutex.lock();
- m_nStopNum++;
- m_nStopNumMutex.unlock();
- }
|