public
enum VT_MESSAGE
{
VT_MESSAGE_SET_DEVICE_INFO,
VT_MESSAGE_UPDATE_DEVICE_INFO,
VT_MESSAGE_UPDATE_MIXER_IN_CTRL,
VT_MESSAGE_UPDATE_MIXER_OUT_CTRL,
VT_MESSAGE_MISSED_CALLS,
VT_TASK_TYPE_NULL,
VT_TASK_TYPE_TO_MONITOR,
VT_TASK_TYPE_BY_MONITOR,
VT_TASK_TYPE_TO_BROADCAST,
VT_TASK_TYPE_BY_BROADCAST,
VT_TASK_TYPE_TO_TALK,
VT_TASK_TYPE_BY_TALK,
VT_TASK_TYPE_MULTITALK,
VT_TASK_TYPE_OFFLINETALK,
VT_TASK_STATE_NULL,
VT_TASK_STATE_STOP,
VT_TASK_STATE_CONNECTING,
VT_TASK_STATE_CALLING,
VT_TASK_STATE_BEGIN_BC_PROMPT,
VT_TASK_STATE_END_BC_PROMPT,
VT_TASK_STATE_ONGOING,
VT_TARGET_STATE_NULL = 0,
VT_TARGET_STATE_OFFLINE,
VT_TARGET_STATE_STOP,
VT_TARGET_STATE_REJECT,
VT_TARGET_STATE_BUSY,
[StructLayout(LayoutKind.Sequential)]
public
struct VT_TASK_TARGET
{
public
int nCount;
public
int nEditPos;
public
VT_TASK_TYPE xeTaskType;
public
VT_TASK_STATE xeTaskState;
public
VT_TARGET_STATE xeTargetState;
public
bool bIsBegin;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public
VT_TASK_STATE[] pxeTerState;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public
ushort[] pwID;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public
int[] piSerIdx;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public
byte[] pucPanelNo;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public
char[] strFileName;
public
uint offlineTargetIP;
public
ushort offlineTargetPort;
[StructLayout(LayoutKind.Sequential)]
public
struct tagSERVER
{
public
uint ipServer;
public
ushort wServerPort;
public
bool bFixPort;
public
ushort wHostPort;
public
bool bOnline;
public
bool bIsPCM;
public
bool bIs8K;
public
bool bIsMultiCast;
public
bool bRecord;
public
uint ipRecord;
public
ushort wRecordPort;
[StructLayout(LayoutKind.Sequential)]
public
struct VT_DEVICE_INFO
{
public
ushort wDeviceId;
public
uint ipHost;
public
bool bIsRegister;
public
ushort dwVol;
public
int iServerCount;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public
tagSERVER[] pxsServer;
public
int nTaskCount;
public
int nCurTask;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
public
VT_TASK_TARGET[] pxsTaskArray;
public
const
int MAX_PATH = 260;
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern void IPNBSVTD_DeleteDevice();
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern byte IPNBSVTD_CreateDevice(byte ucCount);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_DeviceMute(ref bool pbMute, bool bIsAudioOut, bool bIsSet);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_DeviceVolume(ref int pdwVolume, bool bIsAudioOut, bool bIsSet);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern void IPNBSVTD_SetINIFilePath(byte ucDeviceIndex, string pINIFilePath);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_OpenServer(byte ucDeviceIndex, IntPtr hParentWnd, uint nMsg);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetBCFromFileEx(byte ucDeviceIndex, bool bBCFromFile, bool bLoop, string strFile, bool bAdd);
public
static
void SetBCFromFile(byte ucDeviceIndex, bool bBCFromFile, bool bLoop, List<string> files, short sFileCount) {
for
(int i = 0; i < files.
Count
; i++)
IPNBSVTD_SetBCFromFileEx(ucDeviceIndex, bBCFromFile, bLoop, files[i], (i == 0) ? false : true);
}
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetBCToTerm(byte ucDeviceIndex);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_GetCurTaskTarget(byte ucDeviceIndex, ref VT_TASK_TARGET pTaskTarget, int iTaskPos);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetCurTaskTarget(byte ucDeviceIndex, ref VT_TASK_TARGET pTaskTarget, int iTaskPos);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_TaskBegin(byte ucDeviceIndex, int iTaskPos);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_TaskEnd(byte ucDeviceIndex, int iTaskPos);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_GetDeviceInfo(byte ucDeviceIndex, ref VT_DEVICE_INFO pDeviceInfo);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_GetBCFileCurrent(byte ucDeviceIndex, StringBuilder strFile);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetStatusCallBack(byte ucDeviceIndex, StatusCallBack dwCallBack, IntPtr dwInstance);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetVoiceCallBack(byte ucDeviceIndex, VoiceCallBack dwCallBack, IntPtr dwInstance);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetFileBCNext(byte ucDeviceIndex);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetFileBCPause(byte ucDeviceIndex, bool bPause);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetFileBCPrevious(byte ucDeviceIndex);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern uint IPNBSVTD_GetBCFileCurrentPlayPos(byte ucDeviceIndex, ref uint pBcFileLen);
[DllImport(
"IPNBSVTD.dll"
)]
public
static
extern bool IPNBSVTD_SetFileBCPlayListPos(byte ucDeviceIndex, byte ucPlayListPos);
}