1
/* This file is part of the KDE project.
3
Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
5
This library is free software: you can redistribute it and/or modify
6
it under the terms of the GNU Lesser General Public License as published by
7
the Free Software Foundation, either version 2.1 or 3 of the License.
9
This library is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU Lesser General Public License for more details.
14
You should have received a copy of the GNU Lesser General Public License
15
along with this library. If not, see <http://www.gnu.org/licenses/>.
18
#ifndef Phonon_QT7_AudioNode_H
19
#define Phonon_QT7_AudioNode_H
21
#include <QtCore/QObject>
22
#include "backendheader.h"
23
#include "audioconnection.h"
24
#include <AudioToolbox/AudioToolbox.h>
25
#include <AudioUnit/AudioUnit.h>
37
class MediaNodeConnection{
47
enum ConnectionSide {Source, Sink};
49
AudioNode(int maxInput, int maxOutput);
52
virtual void createAndConnectAUNodes();
53
virtual void createAudioUnits();
54
virtual void setGraph(AudioGraph *audioGraph);
55
virtual AUNode getInputAUNode();
56
virtual AUNode getOutputAUNode();
57
virtual bool fillInStreamSpecification(AudioConnection *connection, ConnectionSide side);
58
virtual bool setStreamSpecification(AudioConnection *connection, ConnectionSide side);
59
void notify(const MediaNodeEvent *event);
61
virtual void mediaNodeEvent(const MediaNodeEvent *event);
62
Float64 getTimeInSamples(int timeProperty);
64
AudioGraph *m_audioGraph;
65
AudioConnection *m_lastConnectionIn;
68
int m_maxOutputBusses;
72
AudioUnit m_audioUnit;
74
// Only the following methods needs to
75
// be overridden by only_one-audio-unit nodes:
76
virtual ComponentDescription getAudioNodeDescription() const;
77
virtual void initializeAudioUnit();
80
bool setStreamHelp(AudioConnection *c, int bus, OSType scope, bool fromSource);
82
}} // namespace Phonon::QT7
86
#endif // Phonon_QT7_AudioNode_H