OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 // Port-specific device identification information for live/local input stre
ams can be passed in the inputDeviceId. | 57 // Port-specific device identification information for live/local input stre
ams can be passed in the inputDeviceId. |
58 static PassOwnPtr<AudioDestination> create(AudioIOCallback&, const String& i
nputDeviceId, unsigned numberOfInputChannels, unsigned numberOfOutputChannels, f
loat sampleRate, const PassRefPtr<SecurityOrigin>&); | 58 static PassOwnPtr<AudioDestination> create(AudioIOCallback&, const String& i
nputDeviceId, unsigned numberOfInputChannels, unsigned numberOfOutputChannels, f
loat sampleRate, const PassRefPtr<SecurityOrigin>&); |
59 | 59 |
60 virtual void start(); | 60 virtual void start(); |
61 virtual void stop(); | 61 virtual void stop(); |
62 bool isPlaying() { return m_isPlaying; } | 62 bool isPlaying() { return m_isPlaying; } |
63 | 63 |
64 float sampleRate() const { return m_sampleRate; } | 64 float sampleRate() const { return m_sampleRate; } |
65 | 65 |
66 // WebAudioDevice::RenderCallback | 66 // WebAudioDevice::RenderCallback |
67 void render(const WebVector<float*>& sourceData, const WebVector<float*>& au
dioData, size_t numberOfFrames) override; | 67 void render(const WebVector<float*>& sourceData, const WebVector<float*>& au
dioData, size_t numberOfFrames, const WebAudioTimestamp&) override; |
68 | 68 |
69 // AudioSourceProvider | 69 // AudioSourceProvider |
70 void provideInput(AudioBus*, size_t framesToProcess) override; | 70 void provideInput(AudioBus*, size_t framesToProcess) override; |
71 | 71 |
72 static float hardwareSampleRate(); | 72 static float hardwareSampleRate(); |
73 | 73 |
74 // maxChannelCount() returns the total number of output channels of the audi
o hardware. | 74 // maxChannelCount() returns the total number of output channels of the audi
o hardware. |
75 // A value of 0 indicates that the number of channels cannot be configured a
nd | 75 // A value of 0 indicates that the number of channels cannot be configured a
nd |
76 // that only stereo (2-channel) destinations can be created. | 76 // that only stereo (2-channel) destinations can be created. |
77 // The numberOfOutputChannels parameter of AudioDestination::create() is all
owed to | 77 // The numberOfOutputChannels parameter of AudioDestination::create() is all
owed to |
78 // be a value: 1 <= numberOfOutputChannels <= maxChannelCount(), | 78 // be a value: 1 <= numberOfOutputChannels <= maxChannelCount(), |
79 // or if maxChannelCount() equals 0, then numberOfOutputChannels must be 2. | 79 // or if maxChannelCount() equals 0, then numberOfOutputChannels must be 2. |
80 static unsigned long maxChannelCount(); | 80 static unsigned long maxChannelCount(); |
81 | 81 |
82 private: | 82 private: |
83 AudioIOCallback& m_callback; | 83 AudioIOCallback& m_callback; |
84 unsigned m_numberOfOutputChannels; | 84 unsigned m_numberOfOutputChannels; |
85 RefPtr<AudioBus> m_inputBus; | 85 RefPtr<AudioBus> m_inputBus; |
86 RefPtr<AudioBus> m_renderBus; | 86 RefPtr<AudioBus> m_renderBus; |
87 float m_sampleRate; | 87 float m_sampleRate; |
88 bool m_isPlaying; | 88 bool m_isPlaying; |
89 OwnPtr<WebAudioDevice> m_audioDevice; | 89 OwnPtr<WebAudioDevice> m_audioDevice; |
90 size_t m_callbackBufferSize; | 90 size_t m_callbackBufferSize; |
91 | 91 |
92 OwnPtr<AudioFIFO> m_inputFifo; | 92 OwnPtr<AudioFIFO> m_inputFifo; |
93 OwnPtr<AudioPullFIFO> m_fifo; | 93 OwnPtr<AudioPullFIFO> m_fifo; |
| 94 WebAudioTimestamp m_outputTimestamp; |
94 }; | 95 }; |
95 | 96 |
96 } // namespace blink | 97 } // namespace blink |
97 | 98 |
98 #endif // AudioDestination_h | 99 #endif // AudioDestination_h |
OLD | NEW |