Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(463)

Side by Side Diff: Source/modules/webaudio/AudioBuffer.cpp

Issue 205173002: Move webaudio to oilpan (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/modules/webaudio/AudioBuffer.h ('k') | Source/modules/webaudio/AudioBuffer.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 // crbug.com/344375 46 // crbug.com/344375
47 return 3000; 47 return 3000;
48 } 48 }
49 49
50 float AudioBuffer::maxAllowedSampleRate() 50 float AudioBuffer::maxAllowedSampleRate()
51 { 51 {
52 // Windows can support up to this rate. 52 // Windows can support up to this rate.
53 return 192000; 53 return 192000;
54 } 54 }
55 55
56 PassRefPtr<AudioBuffer> AudioBuffer::create(unsigned numberOfChannels, size_t nu mberOfFrames, float sampleRate) 56 PassRefPtrWillBeRawPtr<AudioBuffer> AudioBuffer::create(unsigned numberOfChannel s, size_t numberOfFrames, float sampleRate)
57 { 57 {
58 if (sampleRate < minAllowedSampleRate() || sampleRate > maxAllowedSampleRate () || numberOfChannels > AudioContext::maxNumberOfChannels() || !numberOfChannel s || !numberOfFrames) 58 if (sampleRate < minAllowedSampleRate() || sampleRate > maxAllowedSampleRate () || numberOfChannels > AudioContext::maxNumberOfChannels() || !numberOfChannel s || !numberOfFrames)
59 return nullptr; 59 return nullptr;
60 60
61 RefPtr<AudioBuffer> buffer = adoptRef(new AudioBuffer(numberOfChannels, numb erOfFrames, sampleRate)); 61 RefPtrWillBeRawPtr<AudioBuffer> buffer = adoptRefWillBeNoop(new AudioBuffer( numberOfChannels, numberOfFrames, sampleRate));
62 62
63 if (!buffer->createdSuccessfully(numberOfChannels)) 63 if (!buffer->createdSuccessfully(numberOfChannels))
64 return nullptr; 64 return nullptr;
65 return buffer; 65 return buffer;
66 } 66 }
67 67
68 PassRefPtr<AudioBuffer> AudioBuffer::create(unsigned numberOfChannels, size_t nu mberOfFrames, float sampleRate, ExceptionState& exceptionState) 68 PassRefPtrWillBeRawPtr<AudioBuffer> AudioBuffer::create(unsigned numberOfChannel s, size_t numberOfFrames, float sampleRate, ExceptionState& exceptionState)
69 { 69 {
70 if (!numberOfChannels || numberOfChannels > AudioContext::maxNumberOfChannel s()) { 70 if (!numberOfChannels || numberOfChannels > AudioContext::maxNumberOfChannel s()) {
71 exceptionState.throwDOMException( 71 exceptionState.throwDOMException(
72 NotSupportedError, 72 NotSupportedError,
73 ExceptionMessages::indexOutsideRange( 73 ExceptionMessages::indexOutsideRange(
74 "number of channels", 74 "number of channels",
75 numberOfChannels, 75 numberOfChannels,
76 1u, 76 1u,
77 ExceptionMessages::InclusiveBound, 77 ExceptionMessages::InclusiveBound,
78 AudioContext::maxNumberOfChannels(), 78 AudioContext::maxNumberOfChannels(),
(...skipping 17 matching lines...) Expand all
96 if (!numberOfFrames) { 96 if (!numberOfFrames) {
97 exceptionState.throwDOMException( 97 exceptionState.throwDOMException(
98 NotSupportedError, 98 NotSupportedError,
99 ExceptionMessages::indexExceedsMinimumBound( 99 ExceptionMessages::indexExceedsMinimumBound(
100 "number of frames", 100 "number of frames",
101 numberOfFrames, 101 numberOfFrames,
102 static_cast<size_t>(0))); 102 static_cast<size_t>(0)));
103 return nullptr; 103 return nullptr;
104 } 104 }
105 105
106 RefPtr<AudioBuffer> audioBuffer = create(numberOfChannels, numberOfFrames, s ampleRate); 106 RefPtrWillBeRawPtr<AudioBuffer> audioBuffer = create(numberOfChannels, numbe rOfFrames, sampleRate);
107 107
108 if (!audioBuffer.get()) { 108 if (!audioBuffer.get()) {
109 exceptionState.throwDOMException( 109 exceptionState.throwDOMException(
110 NotSupportedError, 110 NotSupportedError,
111 "createBuffer(" 111 "createBuffer("
112 + String::number(numberOfChannels) + ", " 112 + String::number(numberOfChannels) + ", "
113 + String::number(numberOfFrames) + ", " 113 + String::number(numberOfFrames) + ", "
114 + String::number(sampleRate) 114 + String::number(sampleRate)
115 + ") failed."); 115 + ") failed.");
116 } 116 }
117 117
118 return audioBuffer; 118 return audioBuffer;
119 } 119 }
120 120
121 PassRefPtr<AudioBuffer> AudioBuffer::createFromAudioFileData(const void* data, s ize_t dataSize, bool mixToMono, float sampleRate) 121 PassRefPtrWillBeRawPtr<AudioBuffer> AudioBuffer::createFromAudioFileData(const v oid* data, size_t dataSize, bool mixToMono, float sampleRate)
122 { 122 {
123 RefPtr<AudioBus> bus = createBusFromInMemoryAudioFile(data, dataSize, mixToM ono, sampleRate); 123 RefPtr<AudioBus> bus = createBusFromInMemoryAudioFile(data, dataSize, mixToM ono, sampleRate);
124 if (bus.get()) { 124 if (bus.get()) {
125 RefPtr<AudioBuffer> buffer = adoptRef(new AudioBuffer(bus.get())); 125 RefPtrWillBeRawPtr<AudioBuffer> buffer = adoptRefWillBeNoop(new AudioBuf fer(bus.get()));
126 if (buffer->createdSuccessfully(bus->numberOfChannels())) 126 if (buffer->createdSuccessfully(bus->numberOfChannels()))
127 return buffer; 127 return buffer;
128 } 128 }
129 129
130 return nullptr; 130 return nullptr;
131 } 131 }
132 132
133 PassRefPtrWillBeRawPtr<AudioBuffer> AudioBuffer::createFromAudioBus(AudioBus* bu s)
134 {
135 if (!bus)
136 return nullptr;
137 RefPtrWillBeRawPtr<AudioBuffer> buffer = adoptRefWillBeNoop(new AudioBuffer( bus));
138 if (buffer->createdSuccessfully(bus->numberOfChannels()))
139 return buffer;
140 return nullptr;
141 }
142
133 bool AudioBuffer::createdSuccessfully(unsigned desiredNumberOfChannels) const 143 bool AudioBuffer::createdSuccessfully(unsigned desiredNumberOfChannels) const
134 { 144 {
135 return numberOfChannels() == desiredNumberOfChannels; 145 return numberOfChannels() == desiredNumberOfChannels;
136 } 146 }
137 147
138 AudioBuffer::AudioBuffer(unsigned numberOfChannels, size_t numberOfFrames, float sampleRate) 148 AudioBuffer::AudioBuffer(unsigned numberOfChannels, size_t numberOfFrames, float sampleRate)
139 : m_sampleRate(sampleRate) 149 : m_sampleRate(sampleRate)
140 , m_length(numberOfFrames) 150 , m_length(numberOfFrames)
141 { 151 {
142 ScriptWrappable::init(this); 152 ScriptWrappable::init(this);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 { 209 {
200 for (unsigned i = 0; i < m_channels.size(); ++i) { 210 for (unsigned i = 0; i < m_channels.size(); ++i) {
201 if (getChannelData(i)) 211 if (getChannelData(i))
202 getChannelData(i)->zeroRange(0, length()); 212 getChannelData(i)->zeroRange(0, length());
203 } 213 }
204 } 214 }
205 215
206 } // namespace WebCore 216 } // namespace WebCore
207 217
208 #endif // ENABLE(WEB_AUDIO) 218 #endif // ENABLE(WEB_AUDIO)
OLDNEW
« no previous file with comments | « Source/modules/webaudio/AudioBuffer.h ('k') | Source/modules/webaudio/AudioBuffer.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698