]> git.sesse.net Git - casparcg/blob - dependencies64/bluefish/include/BlueC_Api.h
[scene] More documentation with auto completion for example values/expressions.
[casparcg] / dependencies64 / bluefish / include / BlueC_Api.h
1 // The following ifdef block is the standard way of creating macros which make exporting 
2 // from a DLL simpler. All files within this DLL are compiled with the BLUEC_API_EXPORTS
3 // symbol defined on the command line. this symbol should not be defined on any project
4 // that uses this DLL. This way any other project whose source files include this file see 
5 // BLUEC_API_API functions as being imported from a DLL, whereas this DLL sees symbols
6 // defined with this macro as being exported.
7 #ifdef BLUEFISH_EXPORTS
8 #define BLUE_CSDK_API __declspec(dllexport)
9 #else
10 #define BLUE_CSDK_API __declspec(dllimport)
11 #endif
12 #include "BlueTypes.h"
13 #include "BlueDriver_p.h"
14
15 #define IGNORE_SYNC_WAIT_TIMEOUT_VALUE  (0xFFFFFFFF)
16
17
18 #pragma once
19
20 //
21 //typedef enum _blue_video_engine_flags
22 //{
23 //      BLUE_CAPTURE_PREVIEW_ON_OUTPUT_CHANNEL_A=0x1,
24 //      BLUE_CAPTURE_PREVIEW_ON_OUTPUT_CHANNEL_B=0x2,
25 //      BLUE_CAPTURE_PREVIEW_ON_OUTPUT_CHANNEL_C=0x3,
26 //      BLUE_CAPTURE_PREVIEW_ON_OUTPUT_CHANNEL_D=0x4
27 //}blue_video_engine_flags;
28 //
29 typedef enum _EBLUEDMA_DIRECTION
30 {
31         BLUEDMA_WRITE=0,
32         BLUEDMA_READ=1,
33         BLUEDMA_INVALID=3
34 }EBLUEDMA_DIRECTION;
35
36 typedef struct _EBlueConnectorPropertySetting
37 {
38         EBlueVideoChannel channel;
39         EBlueConnectorIdentifier connector;
40         EBlueConnectorSignalDirection   signaldirection;
41         EBlueConnectorProperty propType;
42         VARIANT Value;
43 }EBlueConnectorPropertySetting;
44
45
46 typedef struct _blue_card_property
47 {
48         EBlueVideoChannel       video_channel;
49         EBlueCardProperty       prop;
50         VARIANT  value;
51 }blue_card_property;
52
53
54 extern "C" {
55 BLUE_CSDK_API unsigned int blue_device_count();
56 BLUE_CSDK_API void * blue_attach_to_device(int device_id);
57 BLUE_CSDK_API BERR blue_detach_from_device(void ** device_handle);
58
59 //
60 //BLUE_CSDK_API BERR blue_set_video_engine(             void * device_handle,
61 //                                                                                      EBlueVideoChannel video_channel,
62 //                                                                                      EEngineMode * video_engine,
63 //                                                                                      BLUE_UINT32 video_engine_flag);
64 BLUE_CSDK_API BERR blue_video_dma(                      void * device_handle,
65                                                                                         EBLUEDMA_DIRECTION      dma_direction,
66                                                                                         void * pFrameBuffer,
67                                                                                         BLUE_UINT32 FrameSize,
68                                                                                         BLUE_UINT32 BufferId,
69                                                                                         BLUE_UINT32 * dma_bytes_transferred,
70                                                                                         BLUE_UINT32 CardFrameOffset,
71                                                                                         OVERLAPPED      * pAsync
72                                                                         );
73
74
75 /*
76         functions used to set the card property . This includes the video property 
77         and the video connection/routing property.
78 */
79 BLUE_CSDK_API BERR      blue_set_video_property(                void * device_handle,
80                                                                                         BLUE_UINT32 prop_count,
81                                                                                         blue_card_property * card_prop);
82
83 BLUE_CSDK_API BERR      blue_get_video_property(                void * device_handle,
84                                                                                         BLUE_UINT32 prop_count,
85                                                                                         blue_card_property * card_prop);
86
87 BLUE_CSDK_API BERR      blue_get_connector_property(void * device_handle,
88                                                                         BLUE_UINT32 VideoChannel,
89                                                                         BLUE_UINT32 *settingsCount,     // In: element count of settings array
90                                                                                                                                 // Out: if settings is non-NULL, number of valid elements
91                                                                                                                                 // Out: if settings is NULL, number of elements required
92                                                                         EBlueConnectorPropertySetting *settings // Caller allocates/frees memory
93                                                                         );
94
95 BLUE_CSDK_API BERR      blue_set_connector_property(
96                                                                                         void * device_handle,
97                                                                                         BLUE_UINT32 settingsCount,
98                                                                                         EBlueConnectorPropertySetting *settings
99                                                                                         );
100
101 //BLUE_CSDK_API BERR blue_wait_video_interrupt(void * device_handle,
102 //                                                                                      EBlueVideoChannel  video_channel,
103 //                                                                                      EUpdateMethod upd_fmt,
104 //                                                                                      BLUE_UINT32 field_wait_count,
105 //                                                                                      BLUE_UINT32 *field_count
106 //                                                                                      );
107 }