]> git.sesse.net Git - casparcg/blob - BluefishSDK_V5_10_0_42/Inc/BlueVelvet4.h
dependencies: Cleanup
[casparcg] / BluefishSDK_V5_10_0_42 / Inc / BlueVelvet4.h
1 #ifndef _BLUEVELVET4_H\r
2 #define _BLUEVELVET4_H\r
3 \r
4 #include "BlueVelvet.h"\r
5 #include "BlueC_Api.h"\r
6 typedef struct \r
7 {\r
8         VARIANT maxRange;\r
9         VARIANT minRange;\r
10         VARIANT currentValue;\r
11         unsigned long uniqueSteps;\r
12 }AnalogPropertyValue;\r
13 \r
14 \r
15 class BLUEFISH_API CBlueVelvet4:  virtual  public CBlueVelvet \r
16 {\r
17 public:\r
18         // Functions for new Analog Card Property \r
19         virtual BErr SetAnalogCardProperty(int propType,VARIANT & propValue)=0;\r
20         virtual BErr GetAnalogCardProperty(int propType,AnalogPropertyValue & propValue)=0;\r
21         virtual BErr GetAnalogCardProperty(int propType,VARIANT & propValue)=0;\r
22 \r
23         virtual BErr has_analog_connector(int   DeviceId) = 0;\r
24         virtual int has_svideo_input(int        DeviceId) = 0;\r
25         virtual int has_component_input(int     DeviceId)=0;\r
26         virtual int     has_composite_input(int DeviceId)=0;\r
27         virtual int     has_svideo_output(int   DeviceId)=0;\r
28         virtual int     has_component_output(int        DeviceId)=0;\r
29         virtual int     has_analog_rgb_output(int       DeviceId)=0;\r
30         virtual int     has_composite_output(int        DeviceId)=0;\r
31 \r
32         // Functions for new Audio Input architecture\r
33         // Functions for Future use not implemented \r
34         virtual BErr wait_audio_input_interrupt(unsigned long & noQueuedSample,unsigned long & noFreeSample) = 0;\r
35         virtual BErr InitAudioCaptureMode()=0;\r
36         virtual BErr StartAudioCapture(int syncCount)=0;\r
37         virtual BErr StopAudioCapture()=0;\r
38         virtual BErr ReadAudioSample(int nSampleType,void * pBuffer,long  nNoSample,int bFlag,long nNoSamplesWritten)=0;\r
39         virtual BErr EndAudioCaptureMode()=0; \r
40 \r
41          \r
42         virtual BErr SetCardProperty(int propType,VARIANT & Value)=0;\r
43         virtual BErr QueryCardProperty(int propType,VARIANT & Value)=0;\r
44 \r
45         // RS422 Serial Port Functions\r
46         // Functions for Future use not implemented \r
47         virtual BErr    Wait_For_SerialPort_InputData(unsigned long   bFlag,unsigned long & NoDataAvailable)=0;\r
48         virtual int     IsSerialPort_OutputBuffer_Full(unsigned long bFlag)=0;\r
49         virtual int             Read_From_SerialPort(unsigned long bFlag,unsigned char * pBuffer,unsigned long ReadLength)=0;\r
50         virtual int     Write_To_SerialPort(unsigned long bFlag,unsigned char * pBuffer,unsigned long WriteLength)=0;\r
51 };\r
52 \r
53 \r
54 \r
55 \r
56 extern "C" {\r
57 BLUEFISH_API CBlueVelvet4*      BlueVelvetFactory4();\r
58 BLUEFISH_API void BlueVelvetDestroy(CBlueVelvet4* pObj);\r
59 // this would give you number of VANC/VBI line \r
60 BLUEFISH_API unsigned int BlueVelvetVANCLineCount(unsigned int CardType,unsigned long VidFmt,unsigned long FrameType);\r
61 \r
62 // this would give you golden value for the VANC frame size\r
63 BLUEFISH_API unsigned int BlueVelvetVANCGoldenValue(    unsigned int CardType,\r
64                                                                                                         unsigned long VidFmt,\r
65                                                                                                         unsigned long MemFmt,\r
66                                                                                                         unsigned long FrameType);\r
67 \r
68 // this would give you number of bytes contained in a VANC line \r
69 BLUEFISH_API unsigned int BlueVelvetVANCLineBytes(      unsigned int CardType,\r
70                                                                                                         unsigned long   VidFmt,\r
71                                                                                                         unsigned long   MemFmt);\r
72 \r
73 BLUEFISH_API unsigned int BlueVelvetBytesForGroupPixels(unsigned long MemFmt,unsigned int nPixelCount);\r
74 BLUEFISH_API BErr SetVideo_MetaDataInfo(CBlueVelvet4 * pSdk,LPOVERLAPPED pOverLap,ULONG FrameId,ULONG prop,VARIANT value);\r
75 \r
76 BLUEFISH_API BErr GetVideo_CaptureFrameInfo(CBlueVelvet4 * pSdk,LPOVERLAPPED pOverlap,struct blue_videoframe_info & video_capture_frame,int     CompostLater);\r
77 BLUEFISH_API BErr GetVideo_CaptureFrameInfoEx(CBlueVelvet4 * pSdk,LPOVERLAPPED pOverlap,struct blue_videoframe_info_ex & video_capture_frame,int        CompostLater,unsigned int *capture_fifo_size);\r
78 \r
79 BLUEFISH_API int GetHancQueuesInfo(CBlueVelvet4 * pSdk, LPOVERLAPPED pOverlap, UINT32 video_channel, UINT32* pFreeBuffers, UINT32* pMaximumBuffers, UINT32* pStatus);\r
80 BLUEFISH_API int GetHancBuffer(CBlueVelvet4 * pSdk,LPOVERLAPPED pOverlap,UINT32 video_channel);\r
81 BLUEFISH_API BERR PutHancBuffer(CBlueVelvet4 * pSdk,LPOVERLAPPED pOverlap,int hanc_buffer_id,UINT32 video_channel);\r
82 BLUEFISH_API BERR HancInputFifoControl(CBlueVelvet4 * pSdk,LPOVERLAPPED pOverlap,UINT32 video_channel, UINT32 control);\r
83 BLUEFISH_API BERR HancOutputFifoControl(CBlueVelvet4 * pSdk,LPOVERLAPPED pOverlap,UINT32 video_channel, UINT32 control);\r
84 BLUEFISH_API int GetHancInputBuffer(CBlueVelvet4* pSdk,LPOVERLAPPED pOverlap,UINT32 video_channel,UINT32* signal_type, UINT32* field_count);\r
85 BLUEFISH_API BLUE_UINT32 emb_audio_decoder( BLUE_UINT32 * src_hanc_buffer,\r
86                                                                                     void  * dest_data_ptr,\r
87                                                                                     BLUE_UINT32 req_audio_sample_count,\r
88                                                                                     BLUE_UINT32 required_audio_channels,\r
89                                                                                         BLUE_UINT32 sample_type);\r
90 BLUEFISH_API BERR blue_wait_video_sync_async(CBlueVelvet4 * pSdk,\r
91                                                                                         LPOVERLAPPED pOverlap,\r
92                                                                                         blue_video_sync_struct * sync_struct);\r
93 BLUEFISH_API BERR blue_dma_read_async(  CBlueVelvet4 * pSdk,\r
94                                                                                 LPOVERLAPPED pOverlap,\r
95                                                                                 struct blue_dma_request_struct  *pUserDmaRequest);\r
96 \r
97 \r
98 BLUEFISH_API BERR blue_load_1D_lookup_table(CBlueVelvet4 * pSdk, struct blue_1d_lookup_table_struct * lut);\r
99 \r
100 BLUEFISH_API BERR blue_control_video_scaler(CBlueVelvet4 * pSdk, unsigned int nScalerId,\r
101                                                                                         bool bOnlyReadValue,\r
102                                                                                         float *pSrcVideoHeight,\r
103                                                                                         float *pSrcVideoWidth,\r
104                                                                                         float *pSrcVideoYPos,\r
105                                                                                         float *pSrcVideoXPos,\r
106                                                                                         float *pDestVideoHeight,\r
107                                                                                         float *pDestVideoWidth,\r
108                                                                                         float *pDestVideoYPos,\r
109                                                                                         float *pDestVideoXPos);\r
110 \r
111 BLUEFISH_API BERR blue_Epoch_GetTimecodes(CBlueVelvet4 * pSdk, UINT32 VideoChannel, UINT64* pArray, UINT32* FieldCount);\r
112 \r
113 BLUEFISH_API unsigned int count_scaler_video_mode(CBlueVelvet4 * pSdk,\r
114                                                                                                         int device_id,\r
115                                                                                                         unsigned int video_channel,\r
116                                                                                                         unsigned int video_mode);\r
117 BLUEFISH_API EVideoMode enum_scaler_video_mode(CBlueVelvet4 * pSdk,\r
118                                                                                                  int device_id,\r
119                                                                                                  unsigned int video_channel,\r
120                                                                                                  unsigned int video_mode,\r
121                                                                                                  unsigned int index);\r
122 BLUEFISH_API BERR blue_video_scaler_filter_coefficent(  CBlueVelvet4 * pSdk,\r
123                                                                                         unsigned int nScalerId,\r
124                                                                                         bool bOnlyReadValue,\r
125                                                                                         unsigned int nFilterType,\r
126                                                                                         float *pCoefficentWeightArray,\r
127                                                                                         unsigned int nArrayElementCount\r
128                                                                                         );\r
129 BLUEFISH_API BERR blue_audioplayback_pause(CBlueVelvet4 * pSdk);\r
130 BLUEFISH_API BERR blue_audioplayback_resume(CBlueVelvet4 * pSdk, int syncCount);\r
131 BLUEFISH_API BERR GetHancQueuesInfoEx(CBlueVelvet4 * pSdk, \r
132                                                 LPOVERLAPPED pOverlap, \r
133                                                 UINT32 video_channel, \r
134                                                 UINT32* pFreeBuffers, \r
135                                                 UINT32* pMaximumBuffers,\r
136                                                 UINT32 * pStatus,\r
137                                                 UINT32 * pSamplesUsed,\r
138                                                 UINT64 *pStartHancFifoTimeStamp,\r
139                                                 UINT64 *pVideoSyncTimeStamp);\r
140 \r
141 \r
142 BLUEFISH_API BERR blue_color_matrix(CBlueVelvet4 * pSdk,bool bGetValue,blue_color_matrix_struct * color_matrix_ptr);\r
143 }\r
144 \r
145 \r
146 #endif //_BLUEVELVET4_H