00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef DSCONNECTORMANAGER_H_
00026 #define DSCONNECTORMANAGER_H_
00027
00028 #include <list>
00029
00030 #include "Connector.h"
00031 #include "ConnectorManager.h"
00032 #include "avcap-export.h"
00033
00034 class IPin;
00035 class IBaseFilter;
00036
00037 namespace avcap
00038 {
00039 class DS_DeviceDescriptor;
00040 class DS_Connector;
00041
00043
00044 class AVCAP_Export DS_ConnectorManager : public ConnectorManager
00045 {
00046 private:
00047 void* mCrossbar;
00048 DS_DeviceDescriptor* mDSDeviceDescriptor;
00049
00050 public:
00051
00055 DS_ConnectorManager(DS_DeviceDescriptor *dd);
00056
00058 virtual ~DS_ConnectorManager();
00059
00060 Connector* getVideoInput();
00061 int setVideoInput(Connector* c);
00062
00063 Connector* getAudioInput();
00064 int setAudioInput(Connector* c);
00065
00066 Connector* getVideoOutput();
00067 int setVideoOutput(Connector* c);
00068
00069 Connector* getAudioOutput();
00070 int setAudioOutput(Connector* c);
00071
00072 void query();
00073
00074 private:
00075
00076 int setConnector(bool IsVideoConnector, Connector* c);
00077
00078 Connector* getConnector(bool IsVideoConnector);
00079
00080 Connector* findByIndex(const ListType& l, int index);
00081
00082 void getIPinFromConnector(Connector *con, IPin **ConnectorPin,
00083 IBaseFilter *CaptureFilter);
00084
00085 bool removeAllFilters(IPin *OutputPinToStart);
00086
00087 bool getPinCategory(IPin *Pin, GUID *PinCategory);
00088 };
00089 }
00090
00091 #endif // DSCONNECTORMANAGER_H_