[Deinterlace-checkins] CVS: DScaler/DScaler/dshowsource BaseCrossbar.cpp,1.1,1.2 BaseCrossbar.h,1.2,
Brought to you by:
adcockj,
dschmelzer
From: Torbj?rn J. <to...@us...> - 2002-08-20 16:18:52
|
Update of /cvsroot/deinterlace/DScaler/DScaler/dshowsource In directory usw-pr-cvs1:/tmp/cvs-serv25724 Modified Files: BaseCrossbar.cpp BaseCrossbar.h SingleCrossbar.cpp SingleCrossbar.h Log Message: modified GetInputIndex to return the input that is connected to specified output Index: BaseCrossbar.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/dshowsource/BaseCrossbar.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** BaseCrossbar.cpp 17 Dec 2001 19:22:33 -0000 1.1 --- BaseCrossbar.cpp 20 Aug 2002 16:18:47 -0000 1.2 *************** *** 25,28 **** --- 25,31 ---- // // $Log$ + // Revision 1.2 2002/08/20 16:18:47 tobbej + // modified GetInputIndex to return the input that is connected to specified output + // // Revision 1.1 2001/12/17 19:22:33 tobbej // new crossbar classes *************** *** 110,113 **** --- 113,118 ---- return TEXT("Video SCART"); break; + case PhysConn_Video_Black: + return TEXT("Video Black"); //what is this ??? case PhysConn_Audio_Tuner: Index: BaseCrossbar.h =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/dshowsource/BaseCrossbar.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** BaseCrossbar.h 7 Feb 2002 22:05:43 -0000 1.2 --- BaseCrossbar.h 20 Aug 2002 16:18:47 -0000 1.3 *************** *** 25,28 **** --- 25,31 ---- // // $Log$ + // Revision 1.3 2002/08/20 16:18:47 tobbej + // modified GetInputIndex to return the input that is connected to specified output + // // Revision 1.2 2002/02/07 22:05:43 tobbej // new classes for file input *************** *** 62,67 **** /** ! * Bas class for crossbars. ! * @todo input selection is not good, it is not posibel to select inputs that belongs to a specified output. not sure if its nesesary */ class CDShowBaseCrossbar : public CDShowObject --- 65,70 ---- /** ! * Base class for crossbars. ! * */ class CDShowBaseCrossbar : public CDShowObject *************** *** 74,80 **** /** ! * @return Number of inputs that can be selected */ ! virtual long GetInputCount()=0; /** --- 77,83 ---- /** ! * Get number of input and output pins. */ ! virtual void GetPinCounts(long &cIn,long &cOut)=0; /** *************** *** 90,94 **** /** ! * Select input * @param Index input index * @param bSetRelated a bool that specifies if the related pin is also to be selected, for example if you selecte a video input it will also set the corect audio input --- 93,97 ---- /** ! * Select input. * @param Index input index * @param bSetRelated a bool that specifies if the related pin is also to be selected, for example if you selecte a video input it will also set the corect audio input *************** *** 97,106 **** /** ! * Which input is selected? * @return index for currently selected index */ ! virtual long GetInputIndex()=0; ! ! virtual bool isInputSelected(long index)=0; }; --- 100,115 ---- /** ! * Which input is connected to specified output. ! * This function returns the input index of the pin that is routed to specified output ! * @param OutIndex output pin index. * @return index for currently selected index */ ! virtual long GetInputIndex(long OutIndex)=0; ! ! /** ! * @param index input pin index. ! * @return true if specified input is routed to an output. ! */ ! virtual bool IsInputSelected(long index)=0; }; Index: SingleCrossbar.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/dshowsource/SingleCrossbar.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** SingleCrossbar.cpp 17 Dec 2001 19:22:33 -0000 1.1 --- SingleCrossbar.cpp 20 Aug 2002 16:18:47 -0000 1.2 *************** *** 25,28 **** --- 25,31 ---- // // $Log$ + // Revision 1.2 2002/08/20 16:18:47 tobbej + // modified GetInputIndex to return the input that is connected to specified output + // // Revision 1.1 2001/12/17 19:22:33 tobbej // new crossbar classes *************** *** 63,77 **** } ! long CDShowSingleCrossbar::GetInputCount() ! { ! long cInput,cOutput; ! ! HRESULT hr=m_crossbar->get_PinCounts(&cOutput,&cInput); if(FAILED(hr)) { throw CCrossbarException("get_PinCounts failed",hr); } - - return cInput; } --- 66,76 ---- } ! void CDShowSingleCrossbar::GetPinCounts(long &cIn,long &cOut) ! { ! HRESULT hr=m_crossbar->get_PinCounts(&cOut,&cIn); if(FAILED(hr)) { throw CCrossbarException("get_PinCounts failed",hr); } } *************** *** 146,178 **** } } - m_currentRoutingIndex=Index; } ! long CDShowSingleCrossbar::GetInputIndex() { ! return m_currentRoutingIndex; } ! bool CDShowSingleCrossbar::isInputSelected(long index) { long cInput,cOutput; ! ! HRESULT hr=m_crossbar->get_PinCounts(&cOutput,&cInput); ! if(FAILED(hr)) ! { ! throw CCrossbarException("isInputSelected failed",hr); ! } ! for(int i=0;i<cOutput;i++) { ! long inputIndex=0; ! hr=m_crossbar->get_IsRoutedTo(i,&inputIndex); ! if(FAILED(hr)) ! { ! throw CCrossbarException("isInputSelected failed",hr); ! } ! if(index==inputIndex) return true; } return false; --- 145,173 ---- } } } ! long CDShowSingleCrossbar::GetInputIndex(long OutIndex) { ! long InputIndex=0; ! HRESULT hr=m_crossbar->get_IsRoutedTo(OutIndex,&InputIndex); ! if(FAILED(hr)) ! { ! throw CCrossbarException("IAMCrossbar::get_IsRoutedTo failed",hr); ! } ! return InputIndex; } ! bool CDShowSingleCrossbar::IsInputSelected(long index) { long cInput,cOutput; ! GetPinCounts(cInput,cOutput); ! for(int i=0;i<cOutput;i++) { ! long inputIndex=GetInputIndex(i); if(index==inputIndex) + { return true; + } } return false; Index: SingleCrossbar.h =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/dshowsource/SingleCrossbar.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** SingleCrossbar.h 17 Dec 2001 19:22:33 -0000 1.1 --- SingleCrossbar.h 20 Aug 2002 16:18:47 -0000 1.2 *************** *** 25,28 **** --- 25,31 ---- // // $Log$ + // Revision 1.2 2002/08/20 16:18:47 tobbej + // modified GetInputIndex to return the input that is connected to specified output + // // Revision 1.1 2001/12/17 19:22:33 tobbej // new crossbar classes *************** *** 45,49 **** /** ! * This class manages one crossbar filter. */ class CDShowSingleCrossbar :public CDShowBaseCrossbar --- 48,52 ---- /** ! * Class for managing one crossbar filter. */ class CDShowSingleCrossbar :public CDShowBaseCrossbar *************** *** 53,59 **** virtual ~CDShowSingleCrossbar(); ! long GetInputCount(); ! long GetInputIndex(); ! bool isInputSelected(long index); PhysicalConnectorType GetInputType(long Index); --- 56,62 ---- virtual ~CDShowSingleCrossbar(); ! void GetPinCounts(long &cIn,long &cOut); ! long GetInputIndex(long OutIndex); ! bool IsInputSelected(long index); PhysicalConnectorType GetInputType(long Index); *************** *** 63,67 **** /// Crossbar filter CComPtr<IAMCrossbar> m_crossbar; - long m_currentRoutingIndex; }; --- 66,69 ---- |