tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ZeroPole.h (2240B)


      1 /*
      2 * Copyright (C) 2011 Google Inc. All rights reserved.
      3 *
      4 * Redistribution and use in source and binary forms, with or without
      5 * modification, are permitted provided that the following conditions
      6 * are met:
      7 *
      8 * 1.  Redistributions of source code must retain the above copyright
      9 *     notice, this list of conditions and the following disclaimer.
     10 * 2.  Redistributions in binary form must reproduce the above copyright
     11 *     notice, this list of conditions and the following disclaimer in the
     12 *     documentation and/or other materials provided with the distribution.
     13 * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
     14 *     its contributors may be used to endorse or promote products derived
     15 *     from this software without specific prior written permission.
     16 *
     17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
     18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 */
     28 
     29 #ifndef ZeroPole_h
     30 #define ZeroPole_h
     31 
     32 namespace WebCore {
     33 
     34 // ZeroPole is a simple filter with one zero and one pole.
     35 
     36 class ZeroPole {
     37 public:
     38  ZeroPole() : m_zero(0), m_pole(0), m_lastX(0), m_lastY(0) {}
     39 
     40  void process(const float* source, float* destination, int framesToProcess);
     41 
     42  // Reset filter state.
     43  void reset() {
     44    m_lastX = 0;
     45    m_lastY = 0;
     46  }
     47 
     48  void setZero(float zero) { m_zero = zero; }
     49  void setPole(float pole) { m_pole = pole; }
     50 
     51  float zero() const { return m_zero; }
     52  float pole() const { return m_pole; }
     53 
     54 private:
     55  float m_zero;
     56  float m_pole;
     57  float m_lastX;
     58  float m_lastY;
     59 };
     60 
     61 }  // namespace WebCore
     62 
     63 #endif  // ZeroPole_h