OpenMoHAA 0.82.0
Loading...
Searching...
No Matches
gvDevice.h
1/*
2GameSpy Voice2 SDK
3Dan "Mr. Pants" Schoenblum
4dan@gamespy.com
5
6Copyright 2004 GameSpy Industries, Inc
7
8devsupport@gamespy.com
9http://gamespy.net
10*/
11
12#ifndef _GV_DEVICE_H_
13#define _GV_DEVICE_H_
14
15#include "gvMain.h"
16
17// amount of time to keep capturing even after voice drops below the capture threshold
18// makes sure that speech that trails off, or slightly dips in volume, is still captured
19#define GVI_HOLD_THRESHOLD_FRAMES 20
20
21// buffer sizes for capture and playback
22#define GVI_PLAYBACK_BUFFER_MILLISECONDS 200
23#define GVI_CAPTURE_BUFFER_MILLISECONDS 1000
24
25/***********
26** DEVICE **
27***********/
28typedef struct
29{
30 void (* m_freeDevice)(GVDevice device);
31
32 GVBool (* m_startDevice)(GVDevice device, GVDeviceType type);
33 void (* m_stopDevice)(GVDevice device, GVDeviceType type);
34 GVBool (* m_isDeviceStarted)(GVDevice device, GVDeviceType type);
35
36 void (* m_setDeviceVolume)(GVDevice device, GVDeviceType type, GVScalar volume);
37 GVScalar (* m_getDeviceVolume)(GVDevice device, GVDeviceType type);
38
39 void (* m_setCaptureThreshold)(GVDevice device, GVScalar threshold);
40 GVScalar (* m_getCaptureThreshold)(GVDevice device);
41
42 GVBool (*m_capturePacket)(GVDevice device, GVByte * packet, int * len, GVFrameStamp * frameStamp, GVScalar * volume);
43 int (* m_getAvailableCaptureBytes)(GVDevice device);
44
45 void (* m_playPacket)(GVDevice device, const GVByte * packet, int len, GVSource source, GVFrameStamp frameStamp, GVBool mute);
46
47 GVBool (* m_isSourceTalking)(GVDevice device, GVSource source);
48 int (* m_listTalkingSources)(GVDevice device, GVSource sources[], int maxSources);
49
50 int (* m_getNumChannels)(GVDevice device, GVDeviceType type);
51 void (* m_getChannelName)(GVDevice device, GVDeviceType type, int channel, gsi_char name[GV_CHANNEL_NAME_LEN]);
52
53 void (* m_setChannel)(GVDevice device, GVDeviceType type, int channel);
54 int (* m_getChannel)(GVDevice device, GVDeviceType type);
56
57typedef struct GVIDevice
58{
59 GVDeviceID m_deviceID;
60 GVHardwareType m_hardwareType;
61 GVDeviceType m_types;
62 GVIDeviceMethods m_methods;
63 gvUnpluggedCallback m_unpluggedCallback;
64 gvFilterCallback m_captureFilterCallback;
65 gvFilterCallback m_playbackFilterCallback;
66 void * m_data;
67 GVCaptureMode m_captureMode;
68 GVScalar m_savedCaptureThreshold;
69} GVIDevice;
70
71GVIDevice * gviNewDevice(GVDeviceID deviceID, GVHardwareType hardwareType, GVDeviceType types, int dataSize);
72void gviFreeDevice(GVIDevice * device);
73
74void gviDeviceUnplugged(GVIDevice * device);
75
76/****************
77** DEVICE LIST **
78****************/
79typedef DArray GVIDeviceList;
80
81GVIDeviceList gviNewDeviceList(ArrayElementFreeFn elemFreeFn);
82void gviFreeDeviceList(GVIDeviceList devices);
83
84void gviAppendDeviceToList(GVIDeviceList devices, GVIDevice * device);
85void gviDeleteDeviceFromList(GVIDeviceList devices, GVIDevice * device);
86
87int gviGetNumDevices(GVIDeviceList devices);
88GVIDevice * gviGetDevice(GVIDeviceList devices, int index);
89
90#endif
Definition gvDevice.h:29
Definition gvDevice.h:58