r668: Configure.in and autogen.sh cleanup based on ideas by giskard.
[cinelerra_cv.git] / cinelerra / pipe.h
blob7f4e9f67468227c732c0c24864ff70f6b335a560
1 #ifndef PIPE_H
2 #define PIPE_H
4 #include <fcntl.h>
5 #include "guicast.h"
6 #include "asset.h"
8 extern "C" {
9 extern int sigpipe_received;
12 class Pipe {
13 public:
14 Pipe::Pipe(char *command, char *sub_str = 0, char sub_char = '%');
15 Pipe::~Pipe() ;
16 int Pipe::open_read() ;
17 int Pipe::open_write() ;
18 void Pipe::close() ;
20 int fd;
21 private:
22 int Pipe::substitute() ;
23 int Pipe::open(char *mode) ;
25 char sub_char;
26 char *sub_str;
27 char *command;
28 char complete[BCTEXTLEN];
29 FILE *file;
33 class PipeCheckBox : public BC_CheckBox
35 public:
36 PipeCheckBox(int x, int y, int value, BC_TextBox *textbox);
37 int handle_event();
39 private:
40 BC_TextBox *textbox;
44 class PipeConfig {
45 public:
46 PipeConfig(BC_WindowBase *window, Defaults *defaults, Asset *asset);
47 // NOTE: Default destructor should destroy all subwindows
49 int create_objects(int x, int y, int textbox_width, int format);
51 // NOTE: these are public so caller can check final values
52 PipeCheckBox *checkbox;
53 BC_TextBox *textbox;
54 BC_RecentList *recent;
56 private:
57 BC_WindowBase *window;
58 Defaults *defaults;
59 Asset *asset;
62 class PipeStatus : public BC_Title
64 public:
65 PipeStatus(int x, int y, char *default_string);
66 int set_status(Asset *asset);
67 private:
68 char *default_string;
69 char status[BCTEXTLEN];
73 class PipePreset : public BC_PopupMenu
75 public:
76 PipePreset(int x, int y, char *title, PipeConfig *config);
77 int handle_event();
79 private:
80 PipeConfig *config;
81 char *title;
85 #endif /* PIPE_H */