| 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 26 matching lines...) Expand all  Loading... | 
|  37 class AudioBuffer; |  37 class AudioBuffer; | 
|  38 class AudioContext; |  38 class AudioContext; | 
|  39 class AudioProcessingEvent; |  39 class AudioProcessingEvent; | 
|  40  |  40  | 
|  41 // ScriptProcessorNode is an AudioNode which allows for arbitrary synthesis or p
    rocessing directly using JavaScript. |  41 // ScriptProcessorNode is an AudioNode which allows for arbitrary synthesis or p
    rocessing directly using JavaScript. | 
|  42 // The API allows for a variable number of inputs and outputs, although it must 
    have at least one input or output. |  42 // The API allows for a variable number of inputs and outputs, although it must 
    have at least one input or output. | 
|  43 // This basic implementation supports no more than one input and output. |  43 // This basic implementation supports no more than one input and output. | 
|  44 // The "onaudioprocess" attribute is an event listener which will get called per
    iodically with an AudioProcessingEvent which has |  44 // The "onaudioprocess" attribute is an event listener which will get called per
    iodically with an AudioProcessingEvent which has | 
|  45 // AudioBuffers for each input and output. |  45 // AudioBuffers for each input and output. | 
|  46  |  46  | 
|  47 class ScriptProcessorNode : public AudioNode { |  47 class ScriptProcessorNode FINAL : public AudioNode { | 
|  48 public: |  48 public: | 
|  49     // bufferSize must be one of the following values: 256, 512, 1024, 2048, 409
    6, 8192, 16384. |  49     // bufferSize must be one of the following values: 256, 512, 1024, 2048, 409
    6, 8192, 16384. | 
|  50     // This value controls how frequently the onaudioprocess event handler is ca
    lled and how many sample-frames need to be processed each call. |  50     // This value controls how frequently the onaudioprocess event handler is ca
    lled and how many sample-frames need to be processed each call. | 
|  51     // Lower numbers for bufferSize will result in a lower (better) latency. Hig
    her numbers will be necessary to avoid audio breakup and glitches. |  51     // Lower numbers for bufferSize will result in a lower (better) latency. Hig
    her numbers will be necessary to avoid audio breakup and glitches. | 
|  52     // The value chosen must carefully balance between latency and audio quality
    . |  52     // The value chosen must carefully balance between latency and audio quality
    . | 
|  53     static PassRefPtr<ScriptProcessorNode> create(AudioContext*, float sampleRat
    e, size_t bufferSize, unsigned numberOfInputChannels, unsigned numberOfOutputCha
    nnels); |  53     static PassRefPtr<ScriptProcessorNode> create(AudioContext*, float sampleRat
    e, size_t bufferSize, unsigned numberOfInputChannels, unsigned numberOfOutputCha
    nnels); | 
|  54  |  54  | 
|  55     virtual ~ScriptProcessorNode(); |  55     virtual ~ScriptProcessorNode(); | 
|  56  |  56  | 
|  57     // AudioNode |  57     // AudioNode | 
|  58     virtual void process(size_t framesToProcess); |  58     virtual void process(size_t framesToProcess) OVERRIDE; | 
|  59     virtual void reset(); |  59     virtual void reset() OVERRIDE; | 
|  60     virtual void initialize(); |  60     virtual void initialize() OVERRIDE; | 
|  61     virtual void uninitialize(); |  61     virtual void uninitialize() OVERRIDE; | 
|  62  |  62  | 
|  63     size_t bufferSize() const { return m_bufferSize; } |  63     size_t bufferSize() const { return m_bufferSize; } | 
|  64  |  64  | 
|  65     DEFINE_ATTRIBUTE_EVENT_LISTENER(audioprocess); |  65     DEFINE_ATTRIBUTE_EVENT_LISTENER(audioprocess); | 
|  66  |  66  | 
|  67  |  67  | 
|  68 private: |  68 private: | 
|  69     virtual double tailTime() const OVERRIDE; |  69     virtual double tailTime() const OVERRIDE; | 
|  70     virtual double latencyTime() const OVERRIDE; |  70     virtual double latencyTime() const OVERRIDE; | 
|  71  |  71  | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
|  88  |  88  | 
|  89     unsigned m_numberOfInputChannels; |  89     unsigned m_numberOfInputChannels; | 
|  90     unsigned m_numberOfOutputChannels; |  90     unsigned m_numberOfOutputChannels; | 
|  91  |  91  | 
|  92     RefPtr<AudioBus> m_internalInputBus; |  92     RefPtr<AudioBus> m_internalInputBus; | 
|  93 }; |  93 }; | 
|  94  |  94  | 
|  95 } // namespace WebCore |  95 } // namespace WebCore | 
|  96  |  96  | 
|  97 #endif // ScriptProcessorNode_h |  97 #endif // ScriptProcessorNode_h | 
| OLD | NEW |