Audaspace
1.9.0
A high level audio library.
Toggle main menu visibility
Loading...
Searching...
No Matches
devices
ThreadedDevice.h
Go to the documentation of this file.
1
/*******************************************************************************
2
* Copyright 2009-2016 Jörg Müller
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
******************************************************************************/
16
17
#pragma once
18
24
25
#include "
devices/SoftwareDevice.h
"
26
27
#include <thread>
28
29
AUD_NAMESPACE_BEGIN
30
34
class
AUD_PLUGIN_API
ThreadedDevice :
public
SoftwareDevice
35
{
36
private
:
40
bool
m_playing;
41
45
bool
m_stop;
46
50
std::thread m_thread;
51
55
AUD_LOCAL
void
start();
56
60
AUD_LOCAL
virtual
void
runMixingThread()=0;
61
62
// delete copy constructor and operator=
63
ThreadedDevice(
const
ThreadedDevice&) =
delete
;
64
ThreadedDevice& operator=(
const
ThreadedDevice&) =
delete
;
65
66
protected
:
67
virtual
void
playing
(
bool
playing
);
68
73
ThreadedDevice
();
74
80
inline
bool
shouldStop
() {
return
m_stop; }
81
86
inline
void
doStop
() { m_stop = m_playing =
false
; }
87
92
void
stopMixingThread
();
93
};
94
95
AUD_NAMESPACE_END
AUD_NAMESPACE_END
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition
Audaspace.h:119
AUD_LOCAL
#define AUD_LOCAL
Used for hiding symbols from export in the shared library.
Definition
Audaspace.h:80
AUD_NAMESPACE_BEGIN
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition
Audaspace.h:116
AUD_PLUGIN_API
#define AUD_PLUGIN_API
Used for exporting symbols in the shared library.
Definition
Audaspace.h:94
SoftwareDevice.h
The SoftwareDevice class.
SoftwareDevice::SoftwareDevice
SoftwareDevice()
Empty default constructor.
ThreadedDevice::stopMixingThread
void stopMixingThread()
Stops all playback and notifies the mixing thread to stop.
ThreadedDevice::doStop
void doStop()
This method needs to be called when the mixing thread is stopping.
Definition
ThreadedDevice.h:86
ThreadedDevice::shouldStop
bool shouldStop()
Indicates that the mixing thread should be stopped.
Definition
ThreadedDevice.h:80
ThreadedDevice::ThreadedDevice
ThreadedDevice()
Empty default constructor.
ThreadedDevice::playing
virtual void playing(bool playing)
This function tells the device, to start or pause playback.
Generated by
1.17.0