Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / cinelerra / channelinfo.h
diff --git a/cinelerra-5.0/cinelerra/channelinfo.h b/cinelerra-5.0/cinelerra/channelinfo.h
deleted file mode 100644 (file)
index 4cafbce..0000000
+++ /dev/null
@@ -1,650 +0,0 @@
-#ifndef CHANNELINFO_H
-#define CHANNELINFO_H
-
-#include "channel.inc"
-#include "channeldb.h"
-#include "channelinfo.inc"
-#include "devicedvbinput.h"
-#include "guicast.h"
-#include "mwindow.inc"
-#include "record.inc"
-#include "recordbatches.h"
-#include "signalstatus.h"
-#include "videodevice.inc"
-#include "vdevicempeg.inc"
-
-#define LTBLACK 0x001c1c1c
-
-
-class ChanSearch : public Thread
-{
-public:
-       ChannelInfo *iwindow;
-       ChanSearchGUI *gui;
-       Mutex *window_lock;
-
-       void start();
-       void stop();
-       void run();
-
-       ChanSearch(ChannelInfo *iwindow);
-       ~ChanSearch();
-};
-
-class ChanSearchGUI : public BC_Window
-{
-public:
-       ChanSearch *cswindow;
-       ChannelInfo *iwindow;
-       ChannelPanel *panel;
-       ChanSearchText *search_text;
-       ChanSearchTitleText *title_text;
-       ChanSearchInfoText *info_text;
-       ChanSearchMatchCase *match_case;
-       ChanSearchStart *search_start;
-       ChanSearchCancel *cancel;
-       ChanSearchList *search_list;
-       BC_Title *click_tip;
-       BC_Title *results;
-
-       int title_text_enable;
-       int info_text_enable;
-       int match_case_enable;
-       ChannelEvent *highlighted_event;
-       int search_x, search_y, text_x, text_y;
-       int cancel_x, cancel_y, cancel_w, cancel_h;
-       int list_x, list_y, list_w, list_h;
-       int results_x, results_y;
-       int sort_column, sort_order;
-
-       const char *search_column_titles[3];
-       int search_column_widths[3];
-       int search_columns[3];
-       ArrayList<BC_ListBoxItem*> search_items[3];
-       ArrayList<ChannelEvent*> search_results;
-
-       void create_objects();
-       int close_event();
-       int resize_event(int x, int y);
-       void update();
-       int search(const char *);
-       void search();
-       static int cmpr_text_dn(const void *a, const void *b);
-       static int cmpr_Text_dn(const void *a, const void *b);
-       static int cmpr_text_up(const void *a, const void *b);
-       static int cmpr_Text_up(const void *a, const void *b);
-       static int cmpr_time_dn(const void *a, const void *b);
-       static int cmpr_time_up(const void *a, const void *b);
-       static int cmpr_title_dn(const void *a, const void *b);
-       static int cmpr_Title_dn(const void *a, const void *b);
-       static int cmpr_title_up(const void *a, const void *b);
-       static int cmpr_Title_up(const void *a, const void *b);
-       void sort_events(int column, int order);
-       void move_column(int src, int dst);
-
-       ChanSearchGUI(ChanSearch *cswindow);
-       ~ChanSearchGUI();
-};
-
-class ChanSearchTitleText : public BC_CheckBox
-{
-public:
-       ChanSearchGUI *gui;
-
-       int handle_event();
-       void update(int v) { set_value(gui->title_text_enable = v); }
-
-       ChanSearchTitleText(ChanSearchGUI *gui, int x, int y);
-       ~ChanSearchTitleText();
-};
-
-class ChanSearchInfoText : public BC_CheckBox
-{
-public:
-       ChanSearchGUI *gui;
-
-       int handle_event();
-       void update(int v) { set_value(gui->info_text_enable = v); }
-
-       ChanSearchInfoText(ChanSearchGUI *gui, int x, int y);
-       ~ChanSearchInfoText();
-};
-
-class ChanSearchMatchCase : public BC_CheckBox
-{
-public:
-       ChanSearchGUI *gui;
-
-       int handle_event();
-
-       ChanSearchMatchCase(ChanSearchGUI *gui, int x, int y);
-       ~ChanSearchMatchCase();
-};
-
-class ChanSearchText : public BC_TextBox
-{
-public:
-       ChanSearchGUI *gui;
-
-       int handle_event();
-       int keypress_event();
-
-       ChanSearchText(ChanSearchGUI *gui, int x, int y, int w);
-       ~ChanSearchText();
-};
-
-class ChanSearchStart : public BC_GenericButton
-{
-public:
-       ChanSearchGUI *gui;
-
-       int handle_event();
-
-       ChanSearchStart(ChanSearchGUI *gui, int x, int y);
-       ~ChanSearchStart();
-};
-
-class ChanSearchCancel : public BC_CancelButton
-{
-public:
-       ChanSearchGUI *gui;
-
-       int handle_event();
-
-       ChanSearchCancel(ChanSearchGUI *gui, int x, int y);
-       ~ChanSearchCancel();
-};
-
-class ChanSearchList : public BC_ListBox
-{
-public:
-       ChanSearchGUI *gui;
-
-       int handle_event();
-       int sort_order_event();
-       int move_column_event();
-
-       ChanSearchList(ChanSearchGUI *gui, int x, int y, int w, int h);
-       ~ChanSearchList();
-};
-
-
-class ChannelProgress : public Thread, public BC_SubWindow
-{
-       ChannelInfoGUI *gui;
-       BC_Title *eta;
-       BC_ProgressBar *bar;
-       Timer *eta_timer;
-       double length, value;
-       int done;
-public:
-       void create_objects();
-       void run();
-       void start();
-       void stop();
-       int update();
-       void set_value(int v) { value = v; }
-
-       ChannelProgress(ChannelInfoGUI *gui, int x, int y, int w, int h, int len);
-       ~ChannelProgress();
-};
-
-
-
-class ChannelPanel : public BC_SubWindow
-{
-public:
-       ChannelInfoGUI *gui;
-       TimeLine *time_line;
-       ChannelData *channel_data;
-       ChannelFrame *channel_frame;
-       ChannelScroll *channel_scroll;
-       TimeLineScroll *time_line_scroll;
-       ArrayList<TimeLineItem*> time_line_items;
-       ArrayList<ChannelDataItem*> channel_data_items;
-       ArrayList<ChannelEventLine *> channel_line_items;
-       ArrayList<ChannelEvent*> channel_event_items;
-
-       int x0, y0, x1, y1, t0, t1;
-       int iwd, iht;
-       int x_moved, y_moved;
-       int iwindow_w, iwindow_h;
-       int path_w, path_h, hhr_w, x_now;
-       int frame_x, frame_y;
-       int frame_w, frame_h;
-       int x_scroll, y_scroll;
-       struct timeval tv;
-       struct timezone tz;
-       time_t st_org;
-
-       void create_objects();
-       ChannelEventLine *NewChannelLine(int y, int h, int color);
-       ChannelEventLine *NewChannelLine(int y) {
-               return NewChannelLine(y, path_h, LTBLACK);
-       }
-       int separator(int y) {
-               NewChannelLine(y+path_h/8, path_h/4, BLACK);
-               return path_h/2;
-       }
-       void resize(int w, int h);
-       void bounding_box(int ix0, int iy0, int ix1, int iy1);
-       void set_x_scroll(int v);
-       void set_y_scroll(int v);
-       void reposition();
-       void get_xtime(int x, char *text);
-       void time_line_update(int ix0, int ix1);
-       int button_press_event();
-
-       ChannelPanel(ChannelInfoGUI *gui, int x, int y, int w, int h);
-       ~ChannelPanel();
-};
-
-class TimeLineItem : public BC_Title
-{
-public:
-       ChannelPanel *panel;
-       int x0, y0;
-
-       TimeLineItem(ChannelPanel *panel, int x, int y, char *text);
-       ~TimeLineItem();
-};
-
-class TimeLine : public BC_SubWindow
-{
-public:
-       ChannelPanel *panel;
-       int resize_event(int w, int h);
-
-       TimeLine(ChannelPanel *panel);
-       ~TimeLine();
-};
-
-class ChannelDataItem : public BC_Title
-{
-public:
-       ChannelPanel *panel;
-       int x0, y0;
-       const char *tip_info;
-       int in_window, tooltip_done;
-
-       int cursor_enter_event();
-       int cursor_leave_event();
-       int repeat_event(int64_t duration);
-       void set_tooltip(const char *tip);
-
-       ChannelDataItem(ChannelPanel *panel, int x, int y, int w,
-               int color, const char *text);
-       ~ChannelDataItem();
-};
-
-class ChannelData : public BC_SubWindow
-{
-public:
-       ChannelPanel *panel;
-
-       int resize_event(int w, int h);
-
-       ChannelData(ChannelPanel *panel, int x, int y, int w, int h);
-       ~ChannelData();
-};
-
-class ChannelScroll : public BC_ScrollBar
-{
-public:
-       ChannelPanel *panel;
-
-       int handle_event();
-
-       ChannelScroll(ChannelPanel *panel, int x, int y, int h);
-       ~ChannelScroll();
-};
-
-class TimeLineScroll : public BC_ScrollBar
-{
-public:
-       ChannelPanel *panel;
-
-       int handle_event();
-
-       TimeLineScroll(ChannelPanel *panel, int x, int y, int w);
-       ~TimeLineScroll();
-};
-
-
-
-class ChannelEvent : public BC_GenericButton
-{
-public:
-       ChannelEventLine *channel_line;
-       time_t start_time, end_time;
-       Channel *channel;
-       int x0, y0, no;
-       const char *tip_info;
-
-       int handle_event();
-       void set_tooltip(const char *tip);
-
-       ChannelEvent(ChannelEventLine *channel_line, Channel *channel,
-               time_t start_time, time_t end_time, int x, int y, int w,
-               const char *text);
-       ~ChannelEvent();
-};
-
-class ChannelEventLine : public BC_SubWindow
-{
-public:
-       ChannelPanel *panel;
-       int x0, y0;
-
-       void resize(int w, int h);
-
-       ChannelEventLine(ChannelPanel *panel, int x, int y, int w, int h, int color);
-       ~ChannelEventLine();
-};
-
-class ChannelFrame : public BC_SubWindow
-{
-public:
-       ChannelPanel *panel;
-
-       void resize(int w, int h);
-
-       ChannelFrame(ChannelPanel *panel);
-       ~ChannelFrame();
-};
-
-
-
-class ChannelInfoGUI : public BC_Window
-{
-public:
-       ChannelInfo *iwindow;
-       ChanSearch *channel_search;
-       ChannelPanel *panel;
-       ChannelProgress *progress;
-       ChannelStatus *channel_status;
-       ChannelInfoGUIBatches *batch_bay;
-       ChannelDir *channel_dir;
-       ChannelPath *channel_path;
-       ChannelStart *channel_start;
-       ChannelDuration *channel_duration;
-       ChannelSource *channel_source;
-       ChannelClearBatch *channel_clear_batch;
-       ChannelNewBatch *channel_new_batch;
-       ChannelDeleteBatch *channel_delete_batch;
-       TimeEntryTumbler *early_time, *late_time;
-       BC_Title *directory_title;
-       BC_Title *path_title;
-       BC_Title *start_title;
-       BC_Title *duration_title;
-       BC_Title *source_title;
-       BC_OKButton *ok;
-       BC_CancelButton *cancel;
-       ChannelInfoCron *channel_cron;
-       ChannelInfoPowerOff *channel_poweroff;
-       ChannelInfoFind *channel_find;
-       int x0, y0, title_w, data_w, pad;
-       int path_w, path_h, status_w;
-       int panel_w, panel_h, max_bay_w;
-       int bay_x, bay_y, bay_w, bay_h;
-       const char *cron_caption, *power_caption;
-       int cron_x, cron_y, cron_w, cron_h;
-       int power_x, power_y, power_w, power_h;
-       int find_x, find_y, find_h;
-       int ok_x, ok_y, ok_w, ok_h;
-       int cancel_x, cancel_y, cancel_w, cancel_h;
-
-       void create_objects();
-       void stop(int v);
-       int translation_event();
-       int resize_event(int w, int h);
-       int close_event();
-       void update_channel_tools();
-       void incr_event(int start_time_incr, int duration_incr);
-       void update_progress(int n) { progress->set_value(n); }
-
-       ChannelInfoGUI(ChannelInfo *iwindow, int x, int y, int w, int h);
-       ~ChannelInfoGUI();
-};
-
-class ChannelInfoOK : public BC_OKButton
-{
-public:
-       ChannelInfoGUI *gui;
-
-       int button_press_event();
-       int keypress_event();
-
-       ChannelInfoOK(ChannelInfoGUI *gui, int x, int y);
-       ~ChannelInfoOK();
-};
-
-class ChannelInfoCancel : public BC_CancelButton
-{
-public:
-       ChannelInfoGUI *gui;
-
-       int button_press_event();
-
-       ChannelInfoCancel(ChannelInfoGUI *gui, int x, int y);
-       ~ChannelInfoCancel();
-};
-
-class ChannelInfoCron : public BC_CheckBox
-{
-public:
-       ChannelInfoGUI *gui;
-
-       int handle_event();
-       ChannelInfoCron(ChannelInfoGUI *gui, int x, int y, int *value);
-       ~ChannelInfoCron();
-};
-
-class ChannelInfoPowerOff : public BC_CheckBox
-{
-public:
-       ChannelInfoGUI *gui;
-
-       int handle_event();
-
-       ChannelInfoPowerOff(ChannelInfoGUI *gui, int x, int y, int *value);
-       ~ChannelInfoPowerOff();
-};
-
-class ChannelInfoFind : public BC_GenericButton
-{
-public:
-       ChannelInfoGUI *gui;
-
-       int handle_event();
-       ChannelInfoFind(ChannelInfoGUI *gui, int x, int y);
-       ~ChannelInfoFind();
-};
-
-
-class ChannelInfoGUIBatches : public RecordBatchesGUI
-{
-public:
-       ChannelInfoGUI *gui;
-
-       int handle_event();
-       int selection_changed();
-
-       ChannelInfoGUIBatches(ChannelInfoGUI *gui,
-               int x, int y, int w, int h);
-       ~ChannelInfoGUIBatches();
-};
-
-class ChannelDir : public RecordBatchesGUI::Dir
-{
-public:
-       ChannelInfoGUI *gui;
-
-       ChannelDir(ChannelInfoGUI *gui, const char *dir, int x, int y);
-};
-
-class ChannelPath : public RecordBatchesGUI::Path
-{
-public:
-       ChannelInfoGUI *gui;
-
-       ChannelPath(ChannelInfoGUI *gui, int x, int y);
-};
-
-class ChannelStart : public RecordBatchesGUI::StartTime
-{
-public:
-       ChannelInfoGUI *gui;
-
-       ChannelStart(ChannelInfoGUI *gui, int x, int y);
-};
-
-class ChannelDuration : public RecordBatchesGUI::Duration
-{
-public:
-       ChannelInfoGUI *gui;
-
-       ChannelDuration(ChannelInfoGUI *gui, int x, int y, int w);
-};
-
-class ChannelEarlyTime : public TimeEntryTumbler
-{
-public:
-       ChannelInfoGUI *gui;
-
-       int handle_up_event();
-       int handle_down_event();
-
-       ChannelEarlyTime(ChannelInfoGUI *gui, int x, int y,
-               double *output_time);
-};
-
-class ChannelLateTime : public TimeEntryTumbler
-{
-public:
-       ChannelInfoGUI *gui;
-
-       int handle_up_event();
-       int handle_down_event();
-
-       ChannelLateTime(ChannelInfoGUI *gui, int x, int y,
-               double *output_time);
-};
-
-class ChannelSource : public RecordBatchesGUI::Source
-{
-public:
-       ChannelInfoGUI *gui;
-       void create_objects();
-       int handle_event();
-       ChannelSource(ChannelInfoGUI *gui, int x, int y);
-};
-
-
-class ChannelNewBatch : public RecordBatchesGUI::NewBatch
-{
-public:
-       ChannelInfoGUI *gui;
-       int handle_event();
-       ChannelNewBatch(ChannelInfoGUI *gui, int x, int y);
-};
-
-
-class ChannelDeleteBatch : public RecordBatchesGUI::DeleteBatch
-{
-public:
-       ChannelInfoGUI *gui;
-       int handle_event();
-       ChannelDeleteBatch(ChannelInfoGUI *gui, int x, int y);
-};
-
-class ChannelClearBatch : public RecordBatchesGUI::ClearBatch
-{
-public:
-       ChannelInfoGUI *gui;
-       int handle_event();
-       ChannelClearBatch(ChannelInfoGUI *gui, int x, int y);
-};
-
-
-
-class ChannelInfo : public Thread
-{
-public:
-       MWindow *mwindow;
-       Record *record;
-       VideoDevice *vdevice;
-       Mutex *window_lock;
-       Mutex *vdevice_lock;
-       Mutex *progress_lock;
-       DeviceDVBInput *dvb_input;
-       RecordBatches record_batches;
-       ChannelInfoGUI *gui;
-       ChannelThread *thread;
-       ChannelDB *channeldb;
-       Condition *scan_lock;
-       int cron_enable, poweroff_enable;
-       int item;
-       int done, gui_done;
-
-       void run_scan();
-       void toggle_scan();
-       void start();
-       void stop();
-       void run();
-       void close_vdevice();
-       Batch *new_batch();
-       void delete_batch();
-       int current_batch() { return gui->batch_bay->current_batch(); }
-       int editing_batch() { return gui->batch_bay->editing_batch(); }
-       bool is_active() { return gui != 0; }
-
-       ChannelInfo(MWindow *mwindow);
-       ~ChannelInfo();
-};
-
-class ChannelThread : public Thread
-{
-public:
-       ChannelInfo *iwindow;
-       ChannelInfoGUI *gui;
-       ChannelPanel *panel;
-       zmpeg3_t *fd;
-       int done;
-
-       int load_ident(int n, int y, char *ident);
-       int load_info(Channel *channel, ChannelEventLine *channel_line);
-       void start();
-       void stop();
-       void run();
-       int total_channels() { return iwindow->channeldb->size(); }
-       Channel *get_channel(int ch) { return iwindow->channeldb->get(ch); }
-       int set_channel(Channel *chan);
-
-       ChannelThread(ChannelInfoGUI *gui);
-       ~ChannelThread();
-};
-
-class ChannelScan : public BC_MenuItem
-{
-public:
-       MWindow *mwindow;
-       int handle_event();
-
-       ChannelScan(MWindow *mwindow);
-       ~ChannelScan();
-};
-
-class ChannelStatus : public SignalStatus
-{
-public:
-       ChannelInfoGUI *gui;
-
-       ChannelStatus(ChannelInfoGUI *gui, int x, int y) :
-               SignalStatus(gui, x, y) { this->gui = gui; }
-       ~ChannelStatus() {}
-};
-
-
-
-#endif