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 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 // main thread. | 63 // main thread. |
64 // | 64 // |
65 // Be careful to avoid reference cycles. If an AudioHandler has a reference | 65 // Be careful to avoid reference cycles. If an AudioHandler has a reference |
66 // cycle including the owner AudioNode, objects in the cycle are never | 66 // cycle including the owner AudioNode, objects in the cycle are never |
67 // collected. | 67 // collected. |
68 class MODULES_EXPORT AudioHandler : public ThreadSafeRefCounted<AudioHandler> { | 68 class MODULES_EXPORT AudioHandler : public ThreadSafeRefCounted<AudioHandler> { |
69 public: | 69 public: |
70 enum { ProcessingSizeInFrames = 128 }; | 70 enum { ProcessingSizeInFrames = 128 }; |
71 | 71 |
72 enum NodeType { | 72 enum NodeType { |
73 NodeTypeUnknown, | 73 NodeTypeUnknown = 0, |
74 NodeTypeDestination, | 74 NodeTypeDestination = 1, |
75 NodeTypeOscillator, | 75 NodeTypeOscillator = 2, |
76 NodeTypeAudioBufferSource, | 76 NodeTypeAudioBufferSource = 3, |
77 NodeTypeMediaElementAudioSource, | 77 NodeTypeMediaElementAudioSource = 4, |
78 NodeTypeMediaStreamAudioDestination, | 78 NodeTypeMediaStreamAudioDestination = 5, |
79 NodeTypeMediaStreamAudioSource, | 79 NodeTypeMediaStreamAudioSource = 6, |
80 NodeTypeJavaScript, | 80 NodeTypeJavaScript = 7, |
81 NodeTypeBiquadFilter, | 81 NodeTypeBiquadFilter = 8, |
82 NodeTypePanner, | 82 NodeTypePanner = 9, |
83 NodeTypeStereoPanner, | 83 NodeTypeStereoPanner = 10, |
84 NodeTypeConvolver, | 84 NodeTypeConvolver = 11, |
85 NodeTypeDelay, | 85 NodeTypeDelay = 12, |
86 NodeTypeGain, | 86 NodeTypeGain = 13, |
87 NodeTypeChannelSplitter, | 87 NodeTypeChannelSplitter = 14, |
88 NodeTypeChannelMerger, | 88 NodeTypeChannelMerger = 15, |
89 NodeTypeAnalyser, | 89 NodeTypeAnalyser = 16, |
90 NodeTypeDynamicsCompressor, | 90 NodeTypeDynamicsCompressor = 17, |
91 NodeTypeWaveShaper, | 91 NodeTypeWaveShaper = 18, |
92 NodeTypeIIRFilter, | 92 NodeTypeIIRFilter = 19, |
93 NodeTypeEnd | 93 NodeTypeEnd = 20 |
94 }; | 94 }; |
95 | 95 |
96 AudioHandler(NodeType, AudioNode&, float sampleRate); | 96 AudioHandler(NodeType, AudioNode&, float sampleRate); |
97 virtual ~AudioHandler(); | 97 virtual ~AudioHandler(); |
98 // dispose() is called when the owner AudioNode is about to be | 98 // dispose() is called when the owner AudioNode is about to be |
99 // destructed. This must be called in the main thread, and while the graph | 99 // destructed. This must be called in the main thread, and while the graph |
100 // lock is held. | 100 // lock is held. |
101 // Do not release resources used by an audio rendering thread in dispose(). | 101 // Do not release resources used by an audio rendering thread in dispose(). |
102 virtual void dispose(); | 102 virtual void dispose(); |
103 | 103 |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 HeapVector<Member<HeapHashSet<Member<AudioNode>>>> m_connectedNodes; | 350 HeapVector<Member<HeapHashSet<Member<AudioNode>>>> m_connectedNodes; |
351 // Represents audio node graph with Oilpan references. N-th HeapHashSet | 351 // Represents audio node graph with Oilpan references. N-th HeapHashSet |
352 // represents a set of AudioParam objects connected to this AudioNode's N-th | 352 // represents a set of AudioParam objects connected to this AudioNode's N-th |
353 // output. | 353 // output. |
354 HeapVector<Member<HeapHashSet<Member<AudioParam>>>> m_connectedParams; | 354 HeapVector<Member<HeapHashSet<Member<AudioParam>>>> m_connectedParams; |
355 }; | 355 }; |
356 | 356 |
357 } // namespace blink | 357 } // namespace blink |
358 | 358 |
359 #endif // AudioNode_h | 359 #endif // AudioNode_h |
OLD | NEW |