AudRecordLib
AudRecordCLI/AudRecordWrap.h
Go to the documentation of this file.
00001 
00007 #ifndef AUDRECORDCLI_AUDRECORDWRAP_H
00008 #define AUDRECORDCLI_AUDRECORDWRAP_H
00009 
00010 #pragma once
00011 
00012 #include "EndpointWrap.h"
00013 #include "CodecWrap.h"
00014 #include "InterfaceWrap.h"
00015 
00017 namespace AudRecordCLI
00018 {
00019         namespace IServ = System::Runtime::InteropServices;
00020 
00021         [IServ::StructLayout(IServ::LayoutKind::Sequential)]
00023         public ref struct AudRecordStats
00024     {
00026                 ULONGLONG qwSampleCount;
00028                 ULONGLONG qwByteCount;
00030                 ULONGLONG qwDroppedSampleCount;
00032                 ULONGLONG qwDroppedByteCount;
00034                 DWORD dwCurrentBitrate;
00036                 DWORD dwAverageBitrate;
00038                 DWORD dwExpectedBitrate;
00040                 DWORD dwCurrentSampleRate;
00042                 DWORD dwAverageSampleRate;
00044                 DWORD dwExpectedSampleRate;
00045     };
00046 
00048         public enum class AudPausedState
00049         {
00051                 AudPaused,
00053                 AudRecording
00054         };
00055 
00057         public ref class Recorder
00058         {
00059         internal:
00061                 IAudRecord* pNativeRecord;
00063                 Object^ wrapObj;
00064                 Recorder(IAudRecord* pRecord);
00065         public:
00066                 void Record(Endpoint^ client);
00067                 void ChangeCodec(CodecConfig^ config);
00068                 AudPausedState TogglePause();
00069                 AudPausedState QueryPause();
00070                 void Stop();
00071                 IntPtr AddFileTarget(String^ fileName);
00072                 IntPtr AddNetworkBroadcastTarget(DWORD% port, DWORD maxConnections, bool wantUrl, String^% url);
00073                 IntPtr AddCustomTarget(ITargetSink^ pTarget);
00074                 void RemoveTarget(IntPtr pCookie);
00075                 AudRecordStats^ GetStatistics();
00076 
00077                 static Recorder^ Create(CodecConfig^ initialConfig);
00078         };
00079 }
00080 
00083 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Defines