AbstractTransformFilter.cpp

Go to the documentation of this file.
00001 //===========================================================================
00002 //Copyright (C) 2003, 2004 Zentaro Kavanagh
00003 //
00004 //Redistribution and use in source and binary forms, with or without
00005 //modification, are permitted provided that the following conditions
00006 //are met:
00007 //
00008 //- Redistributions of source code must retain the above copyright
00009 //  notice, this list of conditions and the following disclaimer.
00010 //
00011 //- Redistributions in binary form must reproduce the above copyright
00012 //  notice, this list of conditions and the following disclaimer in the
00013 //  documentation and/or other materials provided with the distribution.
00014 //
00015 //- Neither the name of Zentaro Kavanagh nor the names of contributors 
00016 //  may be used to endorse or promote products derived from this software 
00017 //  without specific prior written permission.
00018 //
00019 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00020 //``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00021 //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00022 //PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
00023 //CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00024 //EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00025 //PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00026 //PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00027 //LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00028 //NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00029 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00030 //===========================================================================
00031 
00032 //
00033 // AbstracttransformFilter.cpp :        Abstract Filter Class for transform filters.
00034 //
00035 
00036 
00037 #include "stdafx.h"
00038 #include "AbstractTransformFilter.h"
00039 
00040 //Constructors
00041 AbstractTransformFilter::AbstractTransformFilter(TCHAR* inFilterName, REFCLSID inFilterGUID)
00042         :       CBaseFilter(inFilterName, NULL, m_pLock, inFilterGUID)
00043 
00044         ,       mInputPin(NULL)
00045         ,       mOutputPin(NULL)
00046         
00047 {
00048         //Create the filter lock.
00049         m_pLock = new CCritSec;         //Deleted in destructor... check what is happening in the base class.
00050 }
00051 
00052 AbstractTransformFilter::~AbstractTransformFilter(void)
00053 {
00054         DestroyPins();
00055         delete m_pLock;         //Deleting filter lock
00056 }
00057 
00058 void AbstractTransformFilter::DestroyPins() 
00059 {
00060         delete mOutputPin;
00061         delete mInputPin;
00062 }
00063 
00064 //If you want to handle an interface, do it here.
00065 STDMETHODIMP AbstractTransformFilter::NonDelegatingQueryInterface(REFIID riid, void **ppv) 
00066 {
00067 
00068         //May just get rid of this !!
00069         return CBaseFilter::NonDelegatingQueryInterface(riid, ppv);
00070 }
00071 
00072 CBasePin* AbstractTransformFilter::GetPin(int inPinNo) 
00073 {
00074         //Pin Constants
00075         const int INPUT_PIN = 0;
00076         const int OUTPUT_PIN = 1;
00077         
00078         //Return the pin.
00079         switch (inPinNo) {
00080                 case INPUT_PIN:         
00081                         return mInputPin;
00082                 case OUTPUT_PIN:
00083                         return mOutputPin;
00084                 default:
00085                         return NULL;
00086         };
00087 }
00088 
00089 int AbstractTransformFilter::GetPinCount(void) 
00090 {
00091         const long NUM_PINS = 2;
00092         return NUM_PINS;
00093 }       
00094 

Generated on Tue Feb 15 14:54:20 2005 for oggdsf by  doxygen 1.3.9