Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998-1999 Microsoft Corporation
Module Name:
wavecall.h
Abstract:
Declaration of the CWaveMSPCall
Author: Zoltan Szilagyi September 7th, 1998
--*/
#ifndef __WAVECALL_H_
#define __WAVECALL_H_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
/////////////////////////////////////////////////////////////////////////////
// CWaveMSPCall
/////////////////////////////////////////////////////////////////////////////
class CWaveMSPCall : public CMSPCallMultiGraph, public CMSPObjectSafetyImpl { public: // DECLARE_POLY_AGGREGATABLE(CWaveMSP)
// To add extra interfaces to this class, use the following:
BEGIN_COM_MAP(CWaveMSPCall) COM_INTERFACE_ENTRY( IObjectSafety ) COM_INTERFACE_ENTRY_CHAIN(CMSPCallMultiGraph) END_COM_MAP()
public: CWaveMSPCall(); virtual ~CWaveMSPCall(); virtual ULONG MSPCallAddRef(void); virtual ULONG MSPCallRelease(void);
virtual HRESULT Init( IN CMSPAddress * pMSPAddress, IN MSP_HANDLE htCall, IN DWORD dwReserved, IN DWORD dwMediaType );
virtual HRESULT CreateStreamObject( IN DWORD dwMediaType, IN TERMINAL_DIRECTION Direction, IN IMediaEvent * pGraph, IN ITStream ** ppStream );
virtual HRESULT ReceiveTSPCallData( IN PBYTE pBuffer, IN DWORD dwSize );
//
// We override these to make sure the number of
// streams we have is constant.
//
STDMETHOD (CreateStream) ( IN long lMediaType, IN TERMINAL_DIRECTION Direction, IN OUT ITStream ** ppStream ); STDMETHOD (RemoveStream) ( IN ITStream * pStream );
//
// Public method called by the address to tell us the
// per-address wave IDs. We hold on to them until
// we know whether we have per-call waveids, and if we
// don't, then we set them on the streams.
//
virtual HRESULT SetWaveIDs( IN DWORD dwWaveInID, IN DWORD dwWaveOutID );
//
// Public method for creating the filter mapper cache up front.
// Called by the stream when an intelligent connection is
// attempted. Simply forwarded to the call's owning address object.
//
virtual HRESULT CreateFilterMapper(void) { //
// m_pMSPAddress is valid here, because it is released in
// CMSPCallBase::FinalRelease, and FinalRelease cannot occur
// until after all connection attempts are complete.
//
return ((CWaveMSP *) m_pMSPAddress)->CreateFilterMapper(); }
protected: //
// Protected data members.
//
CWaveMSPStream * m_pRenderStream; CWaveMSPStream * m_pCaptureStream;
BOOL m_fHavePerAddressWaveIDs; DWORD m_dwPerAddressWaveInID; DWORD m_dwPerAddressWaveOutID; };
#endif //__WAVEADDR_H_
|