sipxmediaadapterlib  Version 3.3
CpMediaInterfaceFactory.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2005-2021 SIPez LLC.
3 // Licensed to SIPfoundry under a Contributor Agreement.
4 //
5 // Copyright (C) 2004-2008 SIPfoundry Inc.
6 // Licensed by SIPfoundry under the LGPL license.
7 //
8 // Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
9 // Licensed to SIPfoundry under a Contributor Agreement.
10 //
11 // $$
13 
14 
15 #ifndef _CpMediaInterfaceFactory_h_
16 #define _CpMediaInterfaceFactory_h_
17 
18 // SYSTEM INCLUDES
19 // APPLICATION INCLUDES
20 #include <os/OsStatus.h>
21 #include <utl/UtlDefs.h>
22 #include <utl/UtlString.h>
23 
24 // DEFINES
25 // MACROS
26 // EXTERNAL FUNCTIONS
27 // EXTERNAL VARIABLES
28 // CONSTANTS
29 // STRUCTS
30 // TYPEDEFS
31 // FORWARD DECLARATIONS
33 class CpMediaInterface ;
34 class SdpCodec ;
35 class OsMsgDispatcher ;
36 
48 {
49 /* //////////////////////////// PUBLIC //////////////////////////////////// */
50 public:
51 
52 /* ============================ CREATORS ================================== */
53 
58 
59 
63  virtual ~CpMediaInterfaceFactory();
64 
65  static int (*sGetInputDeviceListFunction)(UtlContainer&);
66  static int (*sGetOutputDeviceListFunction)(UtlContainer&);
67 
68 /* ============================ MANIPULATORS ============================== */
69 
78  void setFactoryImplementation(CpMediaInterfaceFactoryImpl* pFactoryInterface) ;
79 
80 
85  CpMediaInterface* createMediaInterface(const char* publicAddress,
86  const char* localAddress,
87  int numCodecs,
88  SdpCodec* sdpCodecArray[],
89  const char* locale,
90  int expeditedIpTos,
91  const char* szStunServer,
92  int iStunPort,
93  int iStunKeepAlivePeriodSecs,
94  const char* szTurnServer,
95  int iTurnPort,
96  const char* szTurnUsername,
97  const char* szTurnPassword,
98  int iTurnKeepAlivePeriodSecs,
99  UtlBoolean bEnableICE,
100  uint32_t samplesPerSec = 0,
101  OsMsgDispatcher* pDispatcher = NULL
102  );
103 
105  void setDispatcher(OsMsgDispatcher* dispatcher);
106 
108  static OsStatus addCodecPaths(const size_t nCodecPaths, const UtlString codecPaths[]);
121  static void clearCodecPaths();
123 
124 
125 /* ============================ ACCESSORS ================================= */
126 
128 
130  static int getInputDeviceList(UtlContainer& deviceNames);
131 
133  static int getOutputDeviceList(UtlContainer& deviceNames);
134 
135 /* ============================ INQUIRY =================================== */
136 
137 /* //////////////////////////// PROTECTED ///////////////////////////////// */
138 protected:
140 
141 /* //////////////////////////// PRIVATE /////////////////////////////////// */
142 private:
143 
148 
152  CpMediaInterfaceFactory(const CpMediaInterfaceFactory& rCpMediaInterfaceFactory);
153 };
154 
155 /* ============================ INLINE METHODS ============================ */
156 
157 #endif // _CpMediaInterfaceFactory_h_
static int getInputDeviceList(UtlContainer &deviceNames)
Get list of audio input device names available.
Definition: CpMediaInterfaceFactory.cpp:121
static OsStatus addCodecPaths(const size_t nCodecPaths, const UtlString codecPaths[])
Add directory paths to the codec search path.
Definition: CpMediaInterfaceFactory.cpp:103
void setFactoryImplementation(CpMediaInterfaceFactoryImpl *pFactoryInterface)
Definition: CpMediaInterfaceFactory.cpp:45
Definition: CpMediaInterfaceFactory.h:47
CpMediaInterfaceFactoryImpl * getFactoryImplementation()
Definition: CpMediaInterfaceFactory.cpp:116
Abstract media control interface.
Definition: CpMediaInterface.h:96
virtual ~CpMediaInterfaceFactory()
Definition: CpMediaInterfaceFactory.cpp:37
static int getOutputDeviceList(UtlContainer &deviceNames)
Get list of audio output device names available.
Definition: CpMediaInterfaceFactory.cpp:131
CpMediaInterfaceFactoryImpl * mpFactoryImpl
Definition: CpMediaInterfaceFactory.h:139
static int(* sGetOutputDeviceListFunction)(UtlContainer &)
Definition: CpMediaInterfaceFactory.h:66
CpMediaInterface * createMediaInterface(const char *publicAddress, const char *localAddress, int numCodecs, SdpCodec *sdpCodecArray[], const char *locale, int expeditedIpTos, const char *szStunServer, int iStunPort, int iStunKeepAlivePeriodSecs, const char *szTurnServer, int iTurnPort, const char *szTurnUsername, const char *szTurnPassword, int iTurnKeepAlivePeriodSecs, UtlBoolean bEnableICE, uint32_t samplesPerSec=0, OsMsgDispatcher *pDispatcher=NULL)
Definition: CpMediaInterfaceFactory.cpp:64
static void clearCodecPaths()
Clear the static codec path list.
Definition: CpMediaInterfaceFactory.cpp:108
CpMediaInterfaceFactory & operator=(const CpMediaInterfaceFactory &rhs)
void setDispatcher(OsMsgDispatcher *dispatcher)
Set the dispatcher for flowgraph independent media events/messages.
Definition: CpMediaInterfaceFactory.cpp:97
Definition: CpMediaInterfaceFactoryImpl.h:61
static int(* sGetInputDeviceListFunction)(UtlContainer &)
Definition: CpMediaInterfaceFactory.h:65
CpMediaInterfaceFactory()
Definition: CpMediaInterfaceFactory.cpp:31