2 // ==========================================================================
3 // Bluefish444 BlueVelvet SDK library
8 // developed by : Cameron Duffy (C) 2002 Bluefish444 P/L
10 // derived from work begun by Vizrt Austria (C) 2001.
12 // ==========================================================================
14 $Id: BlueVelvet.h,v 1.32.8.1 2011/08/04 03:34:36 tim Exp $
19 #ifdef BLUEFISH_EXPORTS
20 #define BLUEFISH_API __declspec(dllexport)
22 #define BLUEFISH_API __declspec(dllimport)
25 //#include "BlueVelvet_c.h"
27 #define BLUE_UINT32 unsigned int
28 #define BLUE_INT32 int
29 #define BLUE_UINT8 unsigned char
30 #define BLUE_INT8 char
31 #define BLUE_UINT16 unsigned short
32 #define BLUE_INT16 short
33 #define BLUE_UINT64 unsigned __int64
36 #ifndef BLUEVELVET_2_DLL
37 #define BLUEVELVET_SDK_VERSION3
40 #include "BlueDriver_p.h"
43 //----------------------------------------------------------------------------
44 // Some simple macros and definitions
45 #define BLUEVELVET_MAX_DEVICES (5) // Maximum number of Blue Cards recognised by driver
49 #define BLUE_OK(a) (!a) // Test for succcess of a method returning BErr
50 #define BLUE_FAIL(a) (a) // Test for failure of a method returning BErr
51 #define BLUE_PASS(a) (a>=0) // Use this where +ve return values still indicate success
54 //----------------------------------------------------------------------------
55 // The class definition
56 class BLUEFISH_API CBlueVelvet
59 // 4.1 Startup Functions
60 //---------------------------------
61 // 4.1.1 device_enumerate
62 // Counts accessible blue cards in target system.
64 BErr device_enumerate(
68 // 4.1.2 device_attach
69 // Attach the class instance to the indexed device.
73 int do_audio // DEPRECATED; SET TO 0
76 // 4.1.3 device_detach
77 // Detach the current device from the class instance.
83 // 4.1.4 device_attach_audio
84 // Attach the class instance to the audio I/O component of the current device.
85 // DEPRECATED; DO NOT USE!
87 BErr device_attach_audio(
91 // 4.1.5 device_detach_audio
92 // Remove audio I/O components of the current device from the class instance.
93 // DEPRECATED; DO NOT USE!
95 BErr device_detach_audio(
99 // 4.1.6 device_attach_audio_in
100 // Attach the class instance to the audio IINPUT component of the current device.
101 // DEPRECATED; DO NOT USE!
103 BErr device_attach_audio_in(
107 // 4.1.7 device_detach_audio_in
108 // Remove audio INPUT component of the current device from the class instance.
109 // DEPRECATED; DO NOT USE!
111 BErr device_detach_audio_in(
115 // 4.1.8 device_attach_audio_out
116 // Attach the class instance to the audio OUTPUT component of the current device.
117 // DEPRECATED; DO NOT USE!
119 BErr device_attach_audio_out(
123 // 4.1.9 device_detach_audio_out
124 // Remove audio OUTPUT component of the current device from the class instance.
125 // DEPRECATED; DO NOT USE!
127 BErr device_detach_audio_out(
131 // 4.1.10 device_get_bar
132 // Get device Bar assets from driver
137 unsigned long& Length
142 // 4.2 Feature Assessment Functions
143 //---------------------------------
144 // 4.2.1 has_timing_adjust
146 int has_timing_adjust(
150 // 4.2.2 has_vertical_flip
152 int has_vertical_flip(
156 // 4.2.3 has_half_res
162 // 4.2.4 has_dissolve
168 // 4.2.5 has_aperture
174 // 4.2.6 has_input_sdi
180 // 4.2.7 has_output_sdi
186 // 4.2.8 has_input_composite
188 int has_input_composite(
192 // 4.2.9 has_output_composite
194 int has_output_composite(
198 // 4.2.10 has_input_yuv
204 // 4.2.11 has_output_yuv
210 // 4.2.12 has_output_rgb
216 // 4.2.13 has_input_svideo
218 int has_input_svideo(
222 // 4.2.14 has_output_svideo
224 int has_output_svideo(
228 // 4.2.15 has_output_key
234 // 4.2.16 has_output_key_v4444
236 int has_output_key_v4444(
240 // 4.2.17 has_letterbox
246 // 4.2.18 has_video_memory
248 int has_video_memory(
252 // 4.2.18 has_video_memory_base
254 int has_video_memory_base(
258 // 4.2.19 has_video_cardtype
260 int has_video_cardtype(
264 // 4.2.20 count_video_mode
266 int count_video_mode(
270 // 4.2.21 enum_video_mode
272 EVideoMode enum_video_mode(
277 // 4.2.22 count_memory_format
279 int count_memory_format(
283 // 4.2.23 enum_memory_format
285 EMemoryFormat enum_memory_format(
290 // 4.2.24 count_update_method
292 int count_update_method (
296 // 4.2.25 enum_update_method
298 EUpdateMethod enum_update_method(
303 // 4.2.26 has_audio_input
309 // 4.2.27 has_audio_output
311 int has_audio_output(
315 // 4.2.28 count_audio_input_rate
317 int count_audio_input_rate(
321 // 4.2.29 count_audio_output_rate
323 int count_audio_output_rate(
327 // 4.2.30 enum_audio_input_rate
328 // Returns the enumeration for the Ith supported audio input rate.
330 EAudioRate enum_audio_input_rate(
335 // 4.2.31 enum_audio_output_rate
336 // Returns the enumeration for the Ith supported audio output rate.
338 EAudioRate enum_audio_output_rate(
344 // 4.2.32 has_audio_playthru
346 int has_audio_playthru(
350 // 4.2.33 has_dma_control
356 // 4.2.34 has_scaled_rgb
362 // 4.3 Control Functions
363 //---------------------------------
364 // 4.3.1 set_timing_adjust
365 // Determines the video format of a signal applied to the Link A input.
367 BErr set_timing_adjust(
372 // 4.3.2 set_vertical_flip
374 BErr set_vertical_flip(
378 // 4.3.3 set_output_key
387 // 4.3.4 set_output_key_on
389 BErr set_output_key_on(
393 // 4.3.5 set_output_key_v4444
395 BErr set_output_key_v4444(
399 // 4.3.6 set_output_key_invert
401 BErr set_output_key_invert(
405 // 4.3.7 set_output_key_white
407 BErr set_output_key_white(
411 // 4.3.8 set_letterbox
418 // 4.3.9 set_letterbox_lines
420 BErr set_letterbox_lines(
424 // 4.3.10 set_letterbox_black
426 BErr set_letterbox_black(
430 // 4.3.11 set_safearea
437 // 4.3.12 set_safearea_title
439 BErr set_safearea_title(
443 // 4.3.13 set_safearea_picture
445 BErr set_safearea_picture(
449 // 4.3.14 set_output_video
451 BErr set_output_video(
455 // 4.3.15 set_audio_rate
461 // 4.3.16 set_audio_playthrough
463 BErr set_audio_playthrough(
467 // 4.3.17 wait_output_video_synch
469 BErr wait_output_video_synch(
470 unsigned long UpdFmt,
471 unsigned long& FieldCount
474 // 4.3.18 get_output_video_synch_count
476 BErr get_output_video_synch_count(
477 unsigned long& FieldCount
480 // 4.3.19 set_scaled_rgb
486 // 4.3.20 wait_pci_interrupt
488 BErr wait_pci_interrupt(
492 // 4.3.21 get_audio_rate
498 // 4.3.22 wait_input_video_synch
500 BErr wait_input_video_synch(
501 unsigned long UpdFmt,
502 unsigned long& FieldCount
505 // 4.3.23 get_input_video_synch_count
507 BErr get_input_video_synch_count(
508 unsigned long& FieldCount
512 // 4.4 Video STYLE Functions
513 //---------------------------------
514 // 4.4.1 get_video_input_format
515 // Determines the video format of a signal applied to the Link A input.
517 BErr get_video_input_format(
518 unsigned long& VidFmt
521 // 4.4.2 get_video_genlock_format
522 // Determines the video format of a signal applied to the GENLOCK input.
524 BErr get_video_genlock_format(
525 unsigned long& VidFmt
528 // 4.4.3 get_video_output_format
529 // Determines the video format of the output signal.
531 BErr get_video_output_format(
532 unsigned long& VidFmt
535 // 4.4.4 set_video_output_format
536 // Changes the output signal video format of Link A output.
538 BErr set_video_output_format(
539 unsigned long& VidFmt
542 // 4.4.5 get_video_memory_format
543 // Determines the pixel format for blue card video buffers.
545 BErr get_video_memory_format(
546 unsigned long& MemFmt
549 // 4.4.6 set_video_memory_format
550 // Changes the pixel format for blue card video buffers.
552 BErr set_video_memory_format(
553 unsigned long& MemFmt
556 // 4.4.7 get_video_update_format
557 // Determines the update synchronisation style of the video buffers.
559 BErr get_video_update_format(
560 unsigned long& UpdFmt
563 // 4.4.8 set_video_update_format
564 // Changes the video synchronisation method.
566 BErr set_video_update_format(
567 unsigned long& UpdFmt
569 // 4.4.9 get_video_zoom_format
570 // Determines the video resolution style of the video buffers.
572 BErr get_video_zoom_format(
573 unsigned long& ResFmt
576 // 4.4.10 set_video_zoom_format
577 // Changes the video resolution style of the video buffers.
579 BErr set_video_zoom_format(
580 unsigned long& ResFmt
582 // 4.4.11 get_video_framestore_style
583 // Determines the video mode, memory format and update synchronisation
584 // styles of the blue card video buffers.
586 BErr get_video_framestore_style(
587 unsigned long& VidFmt,
588 unsigned long& MemFmt,
589 unsigned long& UpdFmt,
590 unsigned long& ResFmt
593 // 4.4.12 set_video_framestore_style
594 // Changes the video mode, memory format and update synchronisation styles.
596 BErr set_video_framestore_style(
597 unsigned long& VidFmt,
598 unsigned long& MemFmt,
599 unsigned long& UpdFmt,
600 unsigned long& ResFmt
603 // 4.4.13 get_video_engine
604 // Instruct the device driver to change the operational mode of the
607 BErr get_video_engine(
611 // 4.4.14 set_video_engine
612 // Instruct the device driver to change the operational mode of the
615 BErr set_video_engine(
620 // 4.5 DMA Memory Functions
621 //---------------------------------
622 // 4.5.1 system_buffer_map
623 // Obtains the virtual address of one of the driver managed system buffers.
625 BErr system_buffer_map(
630 // 4.5.2 system_buffer_unmap
631 // Unmaps the virtual address of one of the driver managed system buffers
632 // from the process address space.
634 BErr system_buffer_unmap(
638 // 4.5.3 system_buffer_assign
639 // Assign an arbitrary usermode buffer to a particular DMA function.
641 BErr system_buffer_assign(
644 unsigned long Length,
648 // 4.5.4 system_buffer_write
649 // Instructs the DMA engine to begin a DMA write operation to the
650 // active blue card host buffer.
651 // DEPRECATED; DO NOT USE! USE system_buffer_write_async() instead
653 int system_buffer_write(
654 unsigned char* pPixels,
656 unsigned long Offset=0
659 // 4.5.5 system_buffer_read
660 // Instructs the DMA engine to begin a DMA read operation from the
661 // active blue card host buffer.
662 // DEPRECATED; DO NOT USE! USE system_buffer_read_async() instead
664 int system_buffer_read(
665 unsigned char* pPixels,
667 unsigned long Offset=0
671 int system_buffer_write_async(
672 unsigned char* pPixels,
675 unsigned long BufferID,
676 unsigned long Offset=0
679 // 4.5.5 system_buffer_read
680 // Instructs the DMA engine to begin a DMA read operation from the
681 // active blue card host buffer.
683 int system_buffer_read_async(
684 unsigned char* pPixels,
687 unsigned long BufferID,
688 unsigned long Offset=0
692 // 4.6 Framestore Functions
693 //---------------------------------
694 // 4.6.1 render_buffer_count
695 // Determines the number of buffers the blue card memory has been partitioned into.
697 BErr render_buffer_count(
701 // 4.6.2 render_buffer_update
702 // Instructs the video digitiser to select a blue card buffer to rasterise.
704 BErr render_buffer_update(
705 unsigned long BufferId
708 // 4.6.3 render_buffer_update_b
709 // Instructs the video digitiser to select a blue card buffer as the video
710 // channel B source for real-time dissolves.
712 BErr render_buffer_update_b(
713 unsigned long BufferId
716 // 4.6.4 render_buffer_dissolve
717 // Set the percentage of Channel A over Channel B for real-time dissolve.
719 BErr render_buffer_dissolve(
720 unsigned long Dissolve
723 // 4.6.5 render_buffer_dissolve_a_b
724 // Set the video source for Channel A and Channel B and the dissolve
725 // percentage between them.
727 BErr render_buffer_dissolve_a_b(
728 unsigned long BufferId_A,
729 unsigned long BufferId_B,
730 unsigned long Dissolve
733 // 4.6.6 render_buffer_map
734 // Get the virtual address of the indexed blue card buffer.
736 BErr render_buffer_map(
738 unsigned long BufferId
741 // 4.6.7 render_buffer_map_aperture
742 // Get the virtual address of the 8-bit aperture for the indexed blue card buffer.
744 BErr render_buffer_map_aperture(
746 unsigned long BufferId
749 // 4.6.8 render_buffer_map_all
750 // Generates a table of the virtual addresses for all blue card buffers.
752 BErr render_buffer_map_all(
758 // 4.6.9 render_buffer_map_aperture_all
759 // Generates a table of the virtual addresses for the 8-bit aperture
760 // of all blue card buffers.
762 BErr render_buffer_map_aperture_all(
767 // 4.6.10 render_buffer_select
768 // Specify which blue card buffer will become the target of future DMA transactions.
770 BErr render_buffer_select(
771 unsigned long BufferId
774 // 4.6.11 render_buffer_capture
775 // Specify which blue card buffer will be used for capture.
777 BErr render_buffer_capture(
778 unsigned long BufferId,
782 // 4.6.12 render_buffer_sizeof
783 // Determine the maximum byte size of each blue card memory partition.
785 BErr render_buffer_sizeof(
786 unsigned long& Count,
787 unsigned long& Length,
788 unsigned long& Actual,
789 unsigned long& Golden
792 // 4.6.13 render_buffer_quantise
793 // Control whether blue card memory is repartitioned on style changes.
795 BErr render_buffer_quantise(
799 // 4.7 Audio Functions
800 //---------------------------------
801 // 4.7.1 audio_playback_start
802 // Start audio playback.
803 // DEPRECATED; DO NOT USE!
805 BErr audio_playback_start(
809 // 4.7.2 audio_playback_stop
810 // Stop audio playback.
811 // DEPRECATED; DO NOT USE!
813 BErr audio_playback_stop(
817 // 4.7.3 audio_playback_stream
818 // Register a native interleaved audio file for playback.
819 // DEPRECATED; DO NOT USE!
821 BErr audio_playback_stream(
827 // 4.7.4 audio_playback_stream_mono
828 // Register a native monophonic audio file for playback.
829 // DEPRECATED; DO NOT USE!
831 BErr audio_playback_stream_mono(
838 // 4.7.5 audio_playback_stream_stereo
839 // Register a native stereophonic audio file for playback.
840 // DEPRECATED; DO NOT USE!
842 BErr audio_playback_stream_stereo(
849 // 4.7.6 audio_playback_buffer
850 // Register a native 6-channel interleaved audio buffer for playback.
851 // DEPRECATED; DO NOT USE!
853 BErr audio_playback_buffer(
855 unsigned long* pBuffer,
856 unsigned long Length,
858 int (*pFunc)(void* pGlobal, unsigned long* pBuffer, int Offset, int Length),
862 // 4.7.7 audio_playback_buffer_mono
863 // Register a native monophonic audio buffer for playback.
864 // DEPRECATED; DO NOT USE!
866 BErr audio_playback_buffer_mono(
869 unsigned long* pBuffer,
870 unsigned long Length,
872 int (*pFunc)(void* pGlobal, unsigned long* pBuffer, int Offset, int Length),
876 // 4.7.8 audio_playback_buffer_stereo
877 // Register a native stereophonic audio buffer for playback.
878 // DEPRECATED; DO NOT USE!
880 BErr audio_playback_buffer_stereo(
883 unsigned long* pBuffer,
884 unsigned long Length,
886 int (*pFunc)(void* pGlobal, unsigned long* pBuffer, int Offset, int Length),
890 // 4.7.9 audio_playback_deregister
891 // De-registers a native 6-channel interleaved audio source from playback.
892 // DEPRECATED; DO NOT USE!
894 BErr audio_playback_deregister(
898 // 4.7.10 audio_playback_deregister_mono
899 // De-registers a native monophonic audio source from playback.
900 // DEPRECATED; DO NOT USE!
902 BErr audio_playback_deregister_mono(
906 // 4.7.11 audio_playback_deregister_stereo
907 // De-registers a native stereophonic audio source from playback.
908 // DEPRECATED; DO NOT USE!
910 BErr audio_playback_deregister_stereo(
914 // 4.7.12 AudioHandlerPlay
915 // Moves source audio data streams into the playback buffer.
916 // DEPRECATED; DO NOT USE!
918 BErr AudioHandlerPlay(
919 unsigned long& Snooze
922 // 4.7.13 audio_capture_start
923 // Begin capturing audio.
925 BErr audio_capture_start(
927 unsigned long PlayThru
930 // 4.7.14 audio_capture_stop
931 // Stop capturing audio.
933 BErr audio_capture_stop(
936 // 4.7.15 audio_capture_stream
937 // Register a file for capture of native interleaved audio.
938 // DEPRECATED; DO NOT USE!
940 BErr audio_capture_stream (
946 // 4.7.16 audio_capture_stream_mono
947 // Register a file for capture of native monophonic audio.
948 // DEPRECATED; DO NOT USE!
950 BErr audio_capture_stream_mono(
957 // 4.7.17 audio_capture_stream_stereo
958 // Register a file for capture of native stereophonic audio.
959 // DEPRECATED; DO NOT USE!
961 BErr audio_capture_stream_stereo(
968 // 4.7.18 audio_capture_buffer
969 // Register a buffer for capture of native interleaved audio.
970 // DEPRECATED; DO NOT USE!
972 BErr audio_capture_buffer(
974 unsigned long* pBuffer,
975 unsigned long Length,
977 int (*pFunc)(void* pGlobal, unsigned long* pBuffer, int Offset, int Length),
981 // 4.7.19 audio_capture_buffer_mono
982 // Register a buffer for capture of native monophonic audio.
983 // DEPRECATED; DO NOT USE!
985 BErr audio_capture_buffer_mono(
988 unsigned long* pBuffer,
989 unsigned long Length,
991 int (*pFunc)(void* pGlobal, unsigned long* pBuffer, int Offset, int Length),
995 // 4.7.20 audio_capture_buffer_stereo
996 // Register a buffer for capture of native stereophonic audio.
997 // DEPRECATED; DO NOT USE!
999 BErr audio_capture_buffer_stereo(
1002 unsigned long* pBuffer,
1003 unsigned long Length,
1004 unsigned long Chunk,
1005 int (*pFunc)(void* pGlobal, unsigned long* pBuffer, int Offset, int Length),
1009 // 4.7.21 audio_capture_deregister
1010 // De-registers a buffer from capture monitor thread.
1011 // DEPRECATED; DO NOT USE!
1013 BErr audio_capture_deregister(
1017 // 4.7.22 audio_capture_deregister_mono
1018 // De-registers a single monophonic audio buffer from capture monitor thread.
1019 // DEPRECATED; DO NOT USE!
1021 BErr audio_capture_deregister_mono(
1025 // 4.7.23 audio_capture_deregister_stereo
1026 // De-registers a stereophonic audio buffer from capture monitor thread.
1027 // DEPRECATED; DO NOT USE!
1029 BErr audio_capture_deregister_stereo(
1034 // 4.7.24 audio_playback_threshold
1035 // Adjust the Chunk and Snooze times for the Audio Playback Monitor Thread
1036 // DEPRECATED; DO NOT USE!
1038 BErr audio_playback_threshold(
1039 unsigned long Chunk,
1040 unsigned long Snooze
1043 // 4.7.25 audio_capture_sample_count
1044 // Number of samples captured.
1045 // DEPRECATED; DO NOT USE!
1047 ULONG audio_capture_sample_count() = 0;
1049 // 4.7.26 audio_capture_sample_count_mono
1050 // Number of samples captured.
1051 // DEPRECATED; DO NOT USE!
1053 ULONG audio_capture_sample_count_mono(unsigned long Chan) = 0;
1055 // 4.7.27 audio_capture_sample_count_stereo
1056 // Number of samples captured.
1057 // DEPRECATED; DO NOT USE!
1059 ULONG audio_capture_sample_count_stereo(unsigned long Pair) = 0;
1061 // 4.7.28 audio_playback_blip
1062 // Channel is to be blipped
1063 // DEPRECATED; DO NOT USE!
1065 BErr audio_playback_blip(
1069 // 4.8 Video Engine Functions
1070 //---------------------------------
1071 // 4.8.1 video_playback_start
1072 // Start video playback.
1074 BErr video_playback_start(
1079 // 4.8.2 video_playback_stop
1080 // Halts the video playback engine.
1082 BErr video_playback_stop(
1087 // 4.8.3 video_playback_flush
1088 // Flush all pending display requests from all Channels.
1090 BErr video_playback_flush(
1094 // 4.8.4 video_playback_flush_A
1095 // Flush all pending display requests from Channel A.
1096 // DEPRECATED; DO NOT USE!
1098 BErr video_playback_flush_A(
1102 // 4.8.5 video_playback_flush_B
1103 // Flush all pending display requests from Channel-B.
1104 // DEPRECATED; DO NOT USE!
1106 BErr video_playback_flush_B(
1110 // 4.8.6 video_playback_allocate
1111 // Obtain the address of the next available video memory buffer.
1113 BErr video_playback_allocate(
1115 unsigned long& BufferId,
1116 unsigned long& Underrun
1119 // 4.8.7 video_playback_release
1120 // Release physical blue card video buffer.
1122 BErr video_playback_release(
1123 unsigned long BufferId
1126 // 4.8.8 video_playback_flush_display
1127 // Remove a unique display request from the display lists.
1129 BErr video_playback_flush_display(
1130 unsigned long UniqueId
1133 // 4.8.9 video_playback_release_flush
1134 // Purges all pending display requests and returns the frame to the free list.
1136 BErr video_playback_release_flush(
1137 unsigned long BufferId
1140 // 4.8.10 video_playback_present
1141 // Present a buffer to the video playback engine Channel-A.
1143 BErr video_playback_present(
1144 unsigned long& UniqueId,
1145 unsigned long BufferId,
1146 unsigned long Count,
1151 // 4.8.11 video_playback_present_dissolve
1152 // Present a frame with a dissolve value to the video playback engine.
1154 BErr video_playback_present_dissolve(
1155 unsigned long& UniqueId,
1156 unsigned long BufferId,
1157 unsigned long Count,
1158 unsigned long Dissolve,
1163 // 4.8.12 video_playback_present_A
1164 // Present a frame to the video playback engine that will be inserted into Channel-A.
1165 // DEPRECATED; DO NOT USE!
1167 BErr video_playback_present_A(
1168 unsigned long& UniqueId,
1169 unsigned long BufferId,
1170 unsigned long Count,
1171 unsigned long Dissolve,
1177 // 4.8.13 video_playabck_present_B
1178 // Present a frame to the video playback engine that will be inserted into Channel-B.
1179 // DEPRECATED; DO NOT USE!
1181 BErr video_playback_present_B(
1182 unsigned long& UniqueId,
1183 unsigned long BufferId,
1184 unsigned long Count,
1185 unsigned long Dissolve,
1191 // 4.8.14 video_playback_present_detail
1192 // The general purpose presentation function.
1193 // DEPRECATED; DO NOT USE!
1195 BErr video_playback_present_detail(
1196 unsigned long& UniqueId,
1197 unsigned long BufferId,
1198 unsigned long Count,
1199 unsigned long Dissolve,
1203 // 4.8.15 video_capture_start
1204 // Instruct the device driver to begin capturing images into the video framestore.
1206 BErr video_capture_start(
1210 // 4.8.16 video_capture_stop
1211 // Instruct the device driver to stop the video capture.
1213 BErr video_capture_stop(
1217 // 4.8.17 video_capture_harvest
1218 // Get the details about the next frame in a capture sequence.
1220 BErr video_capture_harvest(
1222 unsigned long& BufferId,
1223 unsigned long& Count,
1224 unsigned long& Frames,
1228 // not used for anything important...
1229 // DEPRECATED; DO NOT USE!
1231 BErr nudge_frame(LONG nudge) = 0;
1233 // 4.8.18 video_playback_pause
1234 // Suspend or Resume playback
1236 BErr video_playback_pause(
1240 // 4.8.19 video_capture_compost
1241 // Return a harvested frame for recycling
1243 BErr video_capture_compost(
1244 unsigned long BufferId
1247 #ifdef BLUEVELVET_SDK_VERSION3
1248 virtual BErr set_onboard_keyer(int & On)=0;
1249 virtual BErr get_onboard_keyer_status(int &On)=0;
1250 virtual BErr get_timing_adjust(unsigned int & HPhase,unsigned int & VPhase,unsigned int & MaxHPhase,unsigned int & MaxVPhase) = 0;
1251 virtual BErr get_letterbox_values(unsigned int& Lines,int & bBlackEnableFlag)=0;
1252 virtual BErr get_safearea_info(int& Title,int& Picture)=0;
1253 virtual int has_downconverter_bnc(int deviceId)=0;
1254 virtual int has_onboard_keyer(int deviceId)=0;
1255 virtual int has_duallink_input(int deviceId)=0;
1256 virtual int has_programmable_colorspace_matrix(int deviceId)=0;
1258 virtual BErr SetMatrix_Col_Green_Y(double CoeffG_R,double CoeffG_G,double CoeffG_B,double constG)=0;
1259 virtual BErr GetMatrix_Col_Green_Y(double & CoeffG_R,double & CoeffG_G,double & CoeffG_B,double & constG)=0;
1261 virtual BErr SetMatrix_Col_Red_PR(double CoeffR_R,double CoeffR_G,double CoeffR_B,double constR)=0;
1262 virtual BErr GetMatrix_Col_Red_PR(double & CoeffR_R,double & CoeffR_G,double & CoeffR_B,double & constR)=0;
1264 virtual BErr SetMatrix_Col_Blue_PB(double CoeffB_R,double CoeffB_G,double CoeffB_B,double constB)=0;
1265 virtual BErr GetMatrix_Col_Blue_PB(double & CoeffB_R,double & CoeffB_G,double & CoeffB_B,double & constB)=0;
1267 virtual BErr SetDualLink_Output_Conn_SignalColorSpace(unsigned long & signalType,unsigned long updateMatrixFlag)=0;
1268 virtual BErr SetDualLink_Input(unsigned long & EnableDualLink)=0;
1269 virtual BErr SetDualLink_Input_SignalFormatType(unsigned long &v4444)=0;
1270 virtual BErr GetDualLink_InputProperty(unsigned long & DualLink,unsigned long & connSignalColorSpace,unsigned long & v4444)=0;
1271 virtual BErr GetDualLink_OutputProperty(unsigned long & DualLink,unsigned long & connSignalColorSpace,unsigned long & v4444)=0;
1273 virtual BErr Set_DownConverterSignalType(unsigned long type)=0;
1274 virtual BErr GetDownConverterSignalType(unsigned long & connSignalType)=0;
1276 virtual BErr SetDualLink_Input_Conn_SignalColorSpace(unsigned long & signalType)=0;
1277 virtual int GetHDCardType(int nDeviceId)=0;
1279 // New Audio Interface
1280 virtual BErr MaxAudioOutBufferSize(long & nSampleCount)=0;
1281 virtual BErr GetAudioOutBufferFreeSpace(long & nSampleCount)=0;
1282 virtual BErr wait_audio_output_interrupt(unsigned long & noQueuedSample,unsigned long & noFreeSample) = 0;
1283 virtual BErr InitAudioPlaybackMode()=0;
1284 virtual BErr StartAudioPlayback(int syncCount)=0;
1285 virtual BErr StopAudioPlayback()=0;
1286 virtual BErr WriteAudioSample(int nSampleType,void * pBuffer,long nNoSample,int bFlag,long nNoSamplesWritten)=0;
1287 virtual BErr EndAudioPlaybackMode()=0;
1288 virtual int GetPCIRevId()=0;
1291 // Need this so that derived destructor gets called
1292 virtual ~CBlueVelvet(){}
1293 HANDLE m_hDevice; // Handle to the blue card device driver
1297 //------------------------------------------------------------------------------------------------------------
1299 //------------------------------------------------------------------------------------------------------------
1300 // 4.0.0 The Blue Velvet factory
1301 BLUEFISH_API CBlueVelvet* BlueVelvetFactory();
1305 BLUEFISH_API const char* BlueVelvetVersion();
1307 // 4.0.2 Golden Value calculation
1308 BLUEFISH_API unsigned long BlueVelvetGolden(
1309 unsigned long VidFmt,
1310 unsigned long MemFmt,
1311 unsigned long UpdFmt
1313 // 4.0.3 Bytes Per Line calculation
1314 BLUEFISH_API unsigned long BlueVelvetLineBytes(
1315 unsigned long VidFmt,
1316 unsigned long MemFmt
1318 // 4.0.4 Bytes Per Frame calculation
1319 BLUEFISH_API unsigned long BlueVelvetFrameBytes(
1320 unsigned long VidFmt,
1321 unsigned long MemFmt,
1322 unsigned long UpdFmt
1325 // 4.0.5 Lines Per Frame calculation
1326 BLUEFISH_API unsigned long BlueVelvetFrameLines(
1327 unsigned long VidFmt,
1328 unsigned long UpdFmt
1331 // 4.0.6 Pixels per Line calculation
1332 BLUEFISH_API unsigned long BlueVelvetLinePixels(
1333 unsigned long VidFmt
1336 BLUEFISH_API unsigned long BlueVelvetVBILines(unsigned long VidFmt,unsigned long FrameType);
1340 #endif //_BLUEVELVET_H