📄 usbspeakerlib.h
字号:
/* usbSpeakerLib.h - Definitions for USB speaker class driver *//* Copyright 2000 Wind River Systems, Inc. *//*Modification history--------------------01e,18sep01,wef merge from wrs.tor2_0.usb1_1-f for veloce01d,07may01,wef changed module number to be (module num << 8) | M_usbHostLib01c,02may01,wef changed module number to be M_<module> + M_usbHostLib01b,05dec00,wef moved Module number defs to vwModNum.h - add this to #includes01a,12jan00,rcb First.*/#ifndef __INCusbSpeakerLibh#define __INCusbSpeakerLibh#ifdef __cplusplusextern "C" {#endif/* includes */#include "seqIo.h"#include "usb/usbPlatform.h"#include "vwModNum.h" /* USB Module Number Def's *//* defines *//* usbSpeakerLib error values *//* * USB errnos are defined as being part of the USB host Module, as are all * vxWorks module numbers, but the USB Module number is further divided into * sub-modules. Each sub-module has upto 255 values for its own error codes */ #define USB_SPEAKER_SUB_MODULE 9 #define M_usbSpeakerLib ( (USB_SPEAKER_SUB_MODULE << 8) | M_usbHostLib )#define usbSpkrErr(x) (M_usbSpeakerLib | (x))#define S_usbSpeakerLib_NOT_INITIALIZED usbSpkrErr (1)#define S_usbSpeakerLib_BAD_PARAM usbSpkrErr (2)#define S_usbSpeakerLib_OUT_OF_MEMORY usbSpkrErr (3)#define S_usbSpeakerLib_OUT_OF_RESOURCES usbSpkrErr (4)#define S_usbSpeakerLib_GENERAL_FAULT usbSpkrErr (5)#define S_usbSpeakerLib_NOT_IMPLEMENTED usbSpkrErr (6)#define S_usbSpeakerLib_USBD_FAULT usbSpkrErr (7)#define S_usbSpeakerLib_NOT_REGISTERED usbSpkrErr (8)#define S_usbSpeakerLib_NOT_LOCKED usbSpkrErr (9)/* USB_SPKR_xxxx define "attach codes" used by USB_SPKR_ATTACH_CALLBACK. */#define USB_SPKR_ATTACH 0 /* new speaker attached */#define USB_SPKR_REMOVE 1 /* speaker has been removed */ /* SEQ_DEV no longer valid *//* IOCTL codes unique to usbSpeakerLib. */#define USB_SPKR_IOCTL_GET_FORMAT_COUNT 0x8000#define USB_SPKR_IOCTL_GET_FORMAT_LIST 0x8001#define USB_SPKR_IOCTL_GET_CHANNEL_COUNT 0x8010#define USB_SPKR_IOCTL_GET_CHANNEL_CONFIG 0x8011#define USB_SPKR_IOCTL_GET_CHANNEL_CAPS 0x8012#define USB_SPKR_IOCTL_SET_AUDIO_FORMAT 0x8020#define USB_SPKR_IOCTL_OPEN_AUDIO_STREAM 0x8021#define USB_SPKR_IOCTL_CLOSE_AUDIO_STREAM 0x8022#define USB_SPKR_IOCTL_AUDIO_STREAM_STATUS 0x8023#define USB_SPKR_IOCTL_SET_MUTE 0x8030#define USB_SPKR_IOCTL_SET_VOLUME 0x8031#define USB_SPKR_IOCTL_SET_BASS 0x8032#define USB_SPKR_IOCTL_SET_MID 0x8033#define USB_SPKR_IOCTL_SET_TREBLE 0x8034/* Status bit mask returned by USB_SPKR_IOCTL_AUDIO_STREAM_STATUS. */#define USB_SPKR_STATUS_OPEN 0x0001#define USB_SPKR_STATUS_DATA_IN_BFR 0x0002/* typedefs *//* USB_SPKR_ATTACH_CALLBACK defines a callback routine which will be * invoked by usbSpeakerLib.c when the attachment or removal of a speaker * is detected. When the callback is invoked with an attach code of * USB_SPKR_ATTACH, the pSeqDev points to a newly created SEQ_DEV. When * the attach code is USB_SPKR_REMOVE, the pSeqDev points to a pSeqDev * for a speaker which is no longer attached. */typedef VOID (*USB_SPKR_ATTACH_CALLBACK) ( pVOID arg, /* caller-defined argument */ SEQ_DEV *pSeqDev, /* pointer to affected SEQ_DEV */ UINT16 attachCode /* defined as USB_SPKR_xxxx */ );/* USB_SPKR_CTL_CAPS defines the capabilities of a given speaker control */typedef struct usb_spkr_ctl_caps { BOOL supported; /* true if capability supported */ UINT16 res; /* resolution of capability */ INT16 min; /* minimum setting */ INT16 max; /* maximum setting */ INT16 cur; /* current setting */ } USB_SPKR_CTL_CAPS, *pUSB_SPKR_CTL_CAPS;/* USB_SPKR_CHANNEL_CAPS defines the audio capabilities for a given channel. */typedef struct usb_spkr_channel_caps { UINT16 capsLen; /* length of this structure */ USB_SPKR_CTL_CAPS mute; /* mute */ USB_SPKR_CTL_CAPS volume; /* volume */ USB_SPKR_CTL_CAPS bass; /* bass */ USB_SPKR_CTL_CAPS mid; /* mid-range */ USB_SPKR_CTL_CAPS treble; /* treble */ } USB_SPKR_CHANNEL_CAPS, *pUSB_SPKR_CHANNEL_CAPS;/* USB_SPKR_AUDIO_FORMAT defines an audio format supported by the speaker. */typedef struct usb_spkr_audio_format { UINT8 interface; /* interface number */ UINT8 altSetting; /* alternate setting for this fmt */ UINT8 delay; /* internal delay on this endpoint */ UINT8 endpoint; /* endpoint to receive data */ UINT16 maxPacketSize; /* max packet size for endpoint */ UINT16 formatTag; /* format tag */ UINT8 formatType; /* type I, II, or III. */ /* fields for Type I & III formats */ UINT8 channels; /* number of channels */ UINT8 subFrameSize; /* size of audio sub frame */ UINT8 bitRes; /* bit resolution per sample */ UINT32 sampleFrequency; /* frequency specified by caller */ /* Fields for Type II formats */ UINT16 maxBitRate; /* max bps supported by interface */ UINT16 samplesPerFrame; /* nbr of audio samples per frame */ } USB_SPKR_AUDIO_FORMAT, *pUSB_SPKR_AUDIO_FORMAT;/* function prototypes */STATUS usbSpeakerDevInit (void);STATUS usbSpeakerDevShutdown (void);STATUS usbSpeakerDynamicAttachRegister ( USB_SPKR_ATTACH_CALLBACK callback, /* new callback to be registered */ pVOID arg /* user-defined arg to callback */ );STATUS usbSpeakerDynamicAttachUnRegister ( USB_SPKR_ATTACH_CALLBACK callback, /* callback to be unregistered */ pVOID arg /* user-defined arg to callback */ );STATUS usbSpeakerSeqDevLock ( SEQ_DEV *pSeqDev /* SEQ_DEV to be marked as in use */ );STATUS usbSpeakerSeqDevUnlock ( SEQ_DEV *pSeqDev /* SEQ_DEV to be marked as unused */ );#ifdef __cplusplus}#endif#endif /* __INCusbSpeakerLibh *//* End of file. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -