r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / cinelerra / vdevicebase.h
blob339541b2d06d64be01bfd3fe273d6dbf47d40e46
1 #ifndef VDEVICEBASE_H
2 #define VDEVICEBASE_H
4 #include "assets.inc"
5 #include "channel.inc"
6 #include "colormodels.h"
7 #include "edl.inc"
8 #include "guicast.h"
9 #include "videodevice.inc"
11 class VDeviceBase
13 public:
14 VDeviceBase(VideoDevice *device);
15 virtual ~VDeviceBase();
17 virtual int open_input() { return 1; };
18 virtual int close_all() { return 1; };
19 virtual int read_buffer(VFrame *frame) { return 1; };
20 virtual int write_buffer(VFrame **outputs, EDL *edl) { return 1; };
21 virtual void new_output_buffer(VFrame **outputs, int colormodel) {};
22 virtual ArrayList<int>* get_render_strategies() { return 0; };
23 virtual int get_shared_data(unsigned char *data, long size) { return 0; };
24 virtual int stop_sharing() { return 0; };
25 virtual int interrupt_crash() { return 0; };
26 // Extra work must sometimes be done in here to set up the device.
27 virtual int get_best_colormodel(Asset *asset);
28 virtual int set_channel(Channel *channel) { return 0; };
29 virtual int set_picture(int brightness,
30 int hue,
31 int color,
32 int contrast,
33 int whiteness) { return 0; };
34 // Create a default channeldb
35 virtual void create_channeldb(ArrayList<Channel*> *channeldb) {};
37 virtual int open_output() { return 1; };
38 virtual int output_visible() { return 0; };
39 virtual int start_playback() { return 1; };
40 virtual int stop_playback() { return 1; };
41 virtual BC_Bitmap* get_bitmap() { return 0; };
42 // Most Linux video drivers don't work.
43 // Called by KeepaliveThread when the device appears to be stuck.
44 // Should restart the device if that's what it takes to get it to work.
45 virtual void goose_input() {};
47 VideoDevice *device;
50 #endif