32 #ifndef OPENSHOT_AUDIO_PLAYBACK_THREAD_H
33 #define OPENSHOT_AUDIO_PLAYBACK_THREAD_H
35 #include "../ReaderBase.h"
36 #include "../RendererBase.h"
37 #include "../AudioReaderSource.h"
38 #include "../AudioDeviceInfo.h"
39 #include "../Settings.h"
49 juce::TimeSliceThread::run();
89 AudioSourcePlayer player;
90 AudioTransportSource transport;
91 MixerAudioSource mixer;
95 juce::WaitableEvent play;
96 juce::WaitableEvent played;
110 std::shared_ptr<openshot::Frame> getFrame();
113 int64_t getCurrentFramePosition();
119 void Seek(int64_t new_position);
128 void setSpeed(
int new_speed) {
if (source) source->
setSpeed(new_speed); }
131 int getSpeed()
const {
if (source)
return source->
getSpeed();
else return 1; }
134 std::string getError()
140 std::vector<openshot::AudioDeviceInfo> getAudioDeviceNames()
151 #endif // OPENSHOT_AUDIO_PLAYBACK_THREAD_H
static AudioDeviceManagerSingleton * Instance()
Override with no channels and no preferred audio device.
void CloseAudioDevice()
Close audio device.
This class is used to playback a video from a reader.
AudioDeviceManager audioDeviceManager
Public device manager property.
The audio playback thread.
This abstract class is the base class, used by all readers in libopenshot.
std::string initialise_error
Error found during JUCE initialise method.
std::vector< openshot::AudioDeviceInfo > audio_device_names
List of valid audio device names.
The private part of QtPlayer class, which contains an audio thread and video thread, and controls the video timing and audio synchronization code.
This class is used to expose any ReaderBase derived class as an AudioSource in JUCE.
This namespace is the default namespace for all code in the openshot library.
Singleton wrapper for AudioDeviceManager (to prevent multiple instances).
int getSpeed() const
Get Speed (The speed and direction to playback a reader (1=normal, 2=fast, 3=faster, -1=rewind, etc...)
SafeTimeSliceThread(const String &s)
void setSpeed(int new_speed)
Set Speed (The speed and direction to playback a reader (1=normal, 2=fast, 3=faster, -1=rewind, etc...)
Exception when too many seek attempts happen.