text: //-----------------------------------------------------------------------------
  // Flags       : clang-format SMTGSequencer
  // Project     : VST SDK
  //
  // Category    : Validator
  // Filename    : public.sdk/source/vst/testsuite/processing/processtail.h
  // Created by  : Steinberg, 04/2005
  // Description : VST Test Suite
  //
  //-----------------------------------------------------------------------------
  // LICENSE
  // (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
  //-----------------------------------------------------------------------------
  // Redistribution and use in source and binary forms, with or without modification,
  // are permitted provided that the following conditions are met:
  //
  //   * Redistributions of source code must retain the above copyright notice,
  //     this list of conditions and the following disclaimer.
  //   * Redistributions in binary form must reproduce the above copyright notice,
  //     this list of conditions and the following disclaimer in the documentation
  //     and/or other materials provided with the distribution.
  //   * Neither the name of the Steinberg Media Technologies nor the names of its
  //     contributors may be used to endorse or promote products derived from this
  //     software without specific prior written permission.
  //
  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  // IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE  OF THIS SOFTWARE, EVEN IF ADVISED
  // OF THE POSSIBILITY OF SUCH DAMAGE.
  //-----------------------------------------------------------------------------
  
  #pragma once
  
  #include "public.sdk/source/vst/testsuite/processing/process.h"
  
  //------------------------------------------------------------------------
  namespace Steinberg {
  namespace Vst {
  
  //------------------------------------------------------------------------
  /** Test ProcesTail.
  \ingroup TestClass */
  //------------------------------------------------------------------------
  class ProcessTailTest : public ProcessTest
  {
  public:
  //------------------------------------------------------------------------
  	ProcessTailTest (ITestPlugProvider* plugProvider, ProcessSampleSize sampl);
  	~ProcessTailTest () override;
  
  	DECLARE_VSTTEST ("Check Tail processing")
  
  	// ITest
  	bool PLUGIN_API setup () SMTG_OVERRIDE;
  	bool PLUGIN_API run (ITestResult* testResult) SMTG_OVERRIDE;
  	bool preProcess (ITestResult* testResult) SMTG_OVERRIDE;
  	bool postProcess (ITestResult* testResult) SMTG_OVERRIDE;
  
  //------------------------------------------------------------------------
  protected:
  private:
  	uint32 mTailSamples;
  	uint32 mInTail;
  
  	float* dataPtrFloat;
  	double* dataPtrDouble;
  	bool mInSilenceInput;
  	bool mDontTest;
  };
  
  //------------------------------------------------------------------------
  } // Vst
  } // Steinberg
  