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