Audaspace 1.5.0
A high level audio library.
Loading...
Searching...
No Matches
CoreAudioSynchronizer.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
19#ifdef COREAUDIO_PLUGIN
20#define AUD_BUILD_PLUGIN
21#endif
22
30
31#include <AudioUnit/AudioUnit.h>
32#include <AudioToolbox/CoreAudioClock.h>
33
35
40{
41private:
43 CAClockRef m_clock_ref;
44
46 bool m_playing;
47
48public:
53 CoreAudioSynchronizer(AudioUnit& audio_unit);
54 virtual ~CoreAudioSynchronizer();
55
56 virtual void seek(std::shared_ptr<IHandle> handle, double time);
57 virtual double getPosition(std::shared_ptr<IHandle> handle);
58 virtual void play();
59 virtual void stop();
60 virtual void setSyncCallback(syncFunction function, void* data);
61 virtual int isPlaying();
62};
63
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition Audaspace.h:119
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition Audaspace.h:116
#define AUD_PLUGIN_API
Used for exporting symbols in the shared library.
Definition Audaspace.h:94
The ISynchronizer interface.
This class is a Synchronizer implementation using a CoreAudio clock.
Definition CoreAudioSynchronizer.h:40
virtual double getPosition(std::shared_ptr< IHandle > handle)
Retrieves the position of the synchronizer.
virtual void seek(std::shared_ptr< IHandle > handle, double time)
Sets the playback position of a handle and the synchronizer to a specific time.
CoreAudioSynchronizer(AudioUnit &audio_unit)
Creates a new CoreAudioSynchronizer.
virtual void stop()
Stops the synchronizer playback.
virtual int isPlaying()
Retrieves whether the synchronizer is playing back.
virtual void play()
Starts the synchronizer playback.
virtual void setSyncCallback(syncFunction function, void *data)
Sets the callback function that is called when a synchronization event happens.
This class enables global synchronization of several audio applications if supported.
Definition ISynchronizer.h:39