OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012, Google Inc. All rights reserved. | 2 * Copyright (C) 2012, 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 15 matching lines...) Expand all Loading... |
26 | 26 |
27 #if ENABLE(WEB_AUDIO) | 27 #if ENABLE(WEB_AUDIO) |
28 | 28 |
29 #include "modules/webaudio/OfflineAudioContext.h" | 29 #include "modules/webaudio/OfflineAudioContext.h" |
30 | 30 |
31 #include "bindings/core/v8/ExceptionMessages.h" | 31 #include "bindings/core/v8/ExceptionMessages.h" |
32 #include "bindings/core/v8/ExceptionState.h" | 32 #include "bindings/core/v8/ExceptionState.h" |
33 #include "core/dom/Document.h" | 33 #include "core/dom/Document.h" |
34 #include "core/dom/ExceptionCode.h" | 34 #include "core/dom/ExceptionCode.h" |
35 #include "core/dom/ExecutionContext.h" | 35 #include "core/dom/ExecutionContext.h" |
| 36 #include "platform/audio/AudioUtilities.h" |
36 | 37 |
37 namespace blink { | 38 namespace blink { |
38 | 39 |
39 OfflineAudioContext* OfflineAudioContext::create(ExecutionContext* context, unsi
gned numberOfChannels, size_t numberOfFrames, float sampleRate, ExceptionState&
exceptionState) | 40 OfflineAudioContext* OfflineAudioContext::create(ExecutionContext* context, unsi
gned numberOfChannels, size_t numberOfFrames, float sampleRate, ExceptionState&
exceptionState) |
40 { | 41 { |
41 // FIXME: add support for workers. | 42 // FIXME: add support for workers. |
42 if (!context || !context->isDocument()) { | 43 if (!context || !context->isDocument()) { |
43 exceptionState.throwDOMException( | 44 exceptionState.throwDOMException( |
44 NotSupportedError, | 45 NotSupportedError, |
45 "Workers are not supported."); | 46 "Workers are not supported."); |
(...skipping 13 matching lines...) Expand all Loading... |
59 ExceptionMessages::indexOutsideRange<unsigned>( | 60 ExceptionMessages::indexOutsideRange<unsigned>( |
60 "number of channels", | 61 "number of channels", |
61 numberOfChannels, | 62 numberOfChannels, |
62 0, | 63 0, |
63 ExceptionMessages::InclusiveBound, | 64 ExceptionMessages::InclusiveBound, |
64 AudioContext::maxNumberOfChannels(), | 65 AudioContext::maxNumberOfChannels(), |
65 ExceptionMessages::InclusiveBound)); | 66 ExceptionMessages::InclusiveBound)); |
66 return 0; | 67 return 0; |
67 } | 68 } |
68 | 69 |
69 if (!isSampleRateRangeGood(sampleRate)) { | 70 if (!AudioUtilities::isSampleRateRangeGood(sampleRate)) { |
70 exceptionState.throwDOMException(IndexSizeError, ExceptionMessages::inde
xOutsideRange( | 71 exceptionState.throwDOMException( |
71 "sampleRate", sampleRate, 3000.f, ExceptionMessages::InclusiveBound,
192000.f, ExceptionMessages::InclusiveBound)); | 72 IndexSizeError, |
| 73 ExceptionMessages::indexOutsideRange( |
| 74 "sampleRate", sampleRate, |
| 75 AudioUtilities::minAllowedSampleRate(), ExceptionMessages::Inclu
siveBound, |
| 76 AudioUtilities::maxAllowedSampleRate(), ExceptionMessages::Inclu
siveBound)); |
72 return nullptr; | 77 return nullptr; |
73 } | 78 } |
74 | 79 |
75 OfflineAudioContext* audioContext = adoptRefCountedGarbageCollectedWillBeNoo
p(new OfflineAudioContext(document, numberOfChannels, numberOfFrames, sampleRate
)); | 80 OfflineAudioContext* audioContext = adoptRefCountedGarbageCollectedWillBeNoo
p(new OfflineAudioContext(document, numberOfChannels, numberOfFrames, sampleRate
)); |
76 | 81 |
77 if (!audioContext->destination()) { | 82 if (!audioContext->destination()) { |
78 exceptionState.throwDOMException( | 83 exceptionState.throwDOMException( |
79 NotSupportedError, | 84 NotSupportedError, |
80 "OfflineAudioContext(" + String::number(numberOfChannels) | 85 "OfflineAudioContext(" + String::number(numberOfChannels) |
81 + ", " + String::number(numberOfFrames) | 86 + ", " + String::number(numberOfFrames) |
(...skipping 10 matching lines...) Expand all Loading... |
92 { | 97 { |
93 } | 98 } |
94 | 99 |
95 OfflineAudioContext::~OfflineAudioContext() | 100 OfflineAudioContext::~OfflineAudioContext() |
96 { | 101 { |
97 } | 102 } |
98 | 103 |
99 } // namespace blink | 104 } // namespace blink |
100 | 105 |
101 #endif // ENABLE(WEB_AUDIO) | 106 #endif // ENABLE(WEB_AUDIO) |
OLD | NEW |