Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / cinelerra / recordtransport.C
diff --git a/cinelerra-5.0/cinelerra/recordtransport.C b/cinelerra-5.0/cinelerra/recordtransport.C
deleted file mode 100644 (file)
index 2413079..0000000
+++ /dev/null
@@ -1,421 +0,0 @@
-
-/*
- * CINELERRA
- * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- * 
- */
-
-#include "asset.h"
-#include "file.h"
-#include "language.h"
-#include "mwindow.h"
-#include "record.h"
-#include "recordgui.h"
-#include "recordtransport.h"
-#include "theme.h"
-#include "units.h"
-
-
-RecordTransport::RecordTransport(MWindow *mwindow, Record *record, 
-               BC_WindowBase *window, int x, int y)
-{
-       this->mwindow = mwindow;
-       this->record = record;
-       this->window = window;
-       this->x = x;
-       this->y = y;
-       record_active = 0;
-       play_active = 0;
-}
-
-void RecordTransport::create_objects()
-{
-       int x = this->x, y = this->y;
-
-       window->add_subwindow(rewind_button = new RecordGUIRewind(this, x, y));
-       x += rewind_button->get_w();  y_end = y+rewind_button->get_h();
-       window->add_subwindow(record_button = new RecordGUIRec(this, x, y));
-       x += record_button->get_w();  y_end = max(y_end,y+record_button->get_h());
-       record_frame = 0;
-       if(record->default_asset->video_data) {
-               window->add_subwindow(
-                       record_frame = new RecordGUIRecFrame(this, x, y));
-               x += record_frame->get_w();  y_end = max(y_end,y+record_button->get_h());
-       }
-       window->add_subwindow(stop_button = new RecordGUIStop(this, x, y));
-       x += stop_button->get_w();  y_end = max(y_end,y+record_button->get_h());
-//     window->add_subwindow(pause_button = new RecordGUIPause(this, x, y));
-//     x += pause_button->get_w();  y_end = max(y_end,y+record_button->get_h());
-       x_end = x;
-
-#if 0
-       x = this->x;  y = y_end;
-       window->add_subwindow(back_button = new RecordGUIBack(this, x, y));
-       x += back_button->get_w();  x_end = max(x, x_end);
-       y_end = max(y + back_button->get_h(), y_end);
-       window->add_subwindow(play_button = new RecordGUIPlay(this, x, y));
-       x += play_button->get_w();  x_end = max(x, x_end);
-       y_end = max(y + play_button->get_h(), y_end);
-       window->add_subwindow(fwd_button = new RecordGUIFwd(this, x, y));
-       x += fwd_button->get_w();  x_end = max(x, x_end);
-       y_end = max(y + fwd_button->get_h(), y_end);
-       window->add_subwindow(end_button = new RecordGUIEnd(this, x, y));
-       x += end_button->get_w();  x_end = max(x, x_end);
-       y_end = max(y + end_button->get_h(), y_end);
-#endif
-        x_end += 10;  y_end += 10;
-}
-
-void RecordTransport::reposition_window(int x, int y)
-{
-       this->x = x;  this->y = y;
-       rewind_button->reposition_window(x, y);
-       x += rewind_button->get_w();  y_end = y+rewind_button->get_h();
-       record_button->reposition_window(x, y);
-       x += record_button->get_w();  y_end = max(y_end,y+record_button->get_h());
-       if(record->default_asset->video_data) {
-               record_frame->reposition_window(x, y);
-               x += record_frame->get_w();  y_end = max(y_end,y+record_button->get_h());
-       }
-       stop_button->reposition_window(x, y);
-       x += stop_button->get_w();  y_end = max(y_end,y+record_button->get_h());
-//     pause_button->reposition_window(x, y);
-//     x += pause_button->get_w();  y_end = max(y_end,y+record_button->get_h());
-       x_end = x;
-
-#if 0
-       x = this->x;  y = y_end;
-       back_button->reposition_window(x, y);
-       x += back_button->get_w();  x_end = max(x, x_end);
-       y_end = max(y + back_button->get_h(), y_end);
-       play_button->reposition_window(x, y);
-       x += play_button->get_w();  x_end = max(x, x_end);
-       y_end = max(y + play_button->get_h(), y_end);
-       fwd_button->reposition_window(x, y);
-       x += fwd_button->get_w();  x_end = max(x, x_end);
-       y_end = max(y + fwd_button->get_h(), y_end);
-       end_button->reposition_window(x, y);
-       x += end_button->get_w();  x_end = max(x, x_end);
-       y_end = max(y + end_button->get_h(), y_end);
-#endif
-        x_end += 10;  y_end += 10;
-}
-
-int RecordTransport::get_h()
-{
-       return y_end - y;
-}
-
-int RecordTransport::get_w()
-{
-       return x_end - x;
-}
-
-
-RecordTransport::~RecordTransport()
-{
-}
-void RecordTransport::
-start_writing_file(int single_frame)
-{
-       if( !record->writing_file ) {
-               record->pause_input_threads();
-               record->update_position();
-               record->single_frame = single_frame;
-               record->start_writing_file();
-               record->resume_input_threads();
-       }
-}
-
-void RecordTransport::
-stop_writing()
-{
-        record->stop_cron_thread(_("Interrupted"));
-       record->stop_writing();
-}
-
-int RecordTransport::keypress_event()
-{
-       if( record->cron_active() > 0 ) return 0;
-       if( window->get_keypress() == ' ' ) {
-//printf("RecordTransport::keypress_event 1\n");
-               if( record->writing_file ) {
-                       window->unlock_window();
-                       stop_writing();
-                       window->lock_window("RecordTransport::keypress_event 1");
-               }
-               else {
-                       window->unlock_window();
-                       start_writing_file();
-                       window->lock_window("RecordTransport::keypress_event 2");
-               }
-//printf("RecordTransport::keypress_event 2\n");
-               return 1;
-       }
-       return 0;
-}
-
-
-RecordGUIRec::RecordGUIRec(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("record"))
-{
-       this->record_transport = record_transport;
-       set_tooltip(_("Start recording\nfrom current position"));
-}
-
-RecordGUIRec::~RecordGUIRec()
-{
-}
-
-int RecordGUIRec::handle_event()
-{
-       if( record_transport->record->cron_active() > 0 ) return 0;
-       unlock_window();
-       record_transport->start_writing_file();
-       lock_window("RecordGUIRec::handle_event");
-       return 1;
-}
-
-int RecordGUIRec::keypress_event()
-{
-       return 0;
-}
-
-RecordGUIRecFrame::RecordGUIRecFrame(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("recframe"))
-{ 
-       this->record_transport = record_transport; 
-       set_tooltip(_("RecordTransport single frame"));
-}
-
-RecordGUIRecFrame::~RecordGUIRecFrame()
-{
-}
-
-int RecordGUIRecFrame::handle_event()
-{
-       if( record_transport->record->cron_active() > 0 ) return 0;
-       unlock_window();
-       record_transport->start_writing_file(1);
-       lock_window("RecordGUIRecFrame::handle_event");
-       return 1;
-}
-
-int RecordGUIRecFrame::keypress_event()
-{
-       return 0;
-}
-
-RecordGUIPlay::RecordGUIPlay(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("play"))
-{ 
-       this->record_transport = record_transport; 
-       set_tooltip(_("Preview recording"));
-}
-
-RecordGUIPlay::~RecordGUIPlay()
-{
-}
-
-int RecordGUIPlay::handle_event()
-{
-       unlock_window();
-       lock_window();
-       return 1;
-}
-
-int RecordGUIPlay::keypress_event()
-{
-       return 0;
-}
-
-
-RecordGUIStop::RecordGUIStop(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("stoprec"))
-{
-       this->record_transport = record_transport; 
-       set_tooltip(_("Stop operation"));
-}
-
-RecordGUIStop::~RecordGUIStop()
-{
-}
-
-int RecordGUIStop::handle_event()
-{
-       unlock_window();
-       record_transport->stop_writing();
-       lock_window("RecordGUIStop::handle_event");
-       return 1;
-}
-
-int RecordGUIStop::keypress_event()
-{
-       return 0;
-}
-
-
-
-RecordGUIPause::RecordGUIPause(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("pause"))
-{
-       this->record_transport = record_transport; 
-       set_tooltip(_("Pause"));
-}
-
-RecordGUIPause::~RecordGUIPause()
-{
-}
-
-int RecordGUIPause::handle_event()
-{
-       return 1;
-}
-
-int RecordGUIPause::keypress_event()
-{
-       return 0;
-}
-
-
-
-RecordGUIRewind::RecordGUIRewind(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("rewind"))
-{
-       this->record_transport = record_transport; 
-       set_tooltip(_("Start over"));
-}
-
-RecordGUIRewind::~RecordGUIRewind()
-{
-}
-
-int RecordGUIRewind::handle_event()
-{
-       RecordGUI *record_gui = record_transport->record->record_gui;
-       if( !record_gui->startover_thread->running() )
-               record_gui->startover_thread->start();
-       return 1;
-}
-
-int RecordGUIRewind::keypress_event()
-{
-       return 0;
-}
-
-
-
-RecordGUIBack::RecordGUIBack(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("fastrev"))
-{ 
-       this->record_transport = record_transport; 
-       set_tooltip(_("Fast rewind"));
-}
-
-RecordGUIBack::~RecordGUIBack()
-{
-}
-
-int RecordGUIBack::handle_event()
-{
-       return 1;
-}
-
-int RecordGUIBack::button_press()
-{
-       return 1;
-}
-
-int RecordGUIBack::button_release()
-{
-       unset_repeat(repeat_id);
-       return 1;
-}
-
-int RecordGUIBack::repeat_event()
-{
-return 0;
-       return 1;
-}
-
-int RecordGUIBack::keypress_event()
-{
-       return 0;
-}
-
-
-
-RecordGUIFwd::RecordGUIFwd(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("fastfwd"))
-{ 
-       this->record_transport = record_transport; 
-       set_tooltip(_("Fast forward"));
-}
-
-RecordGUIFwd::~RecordGUIFwd()
-{
-}
-
-int RecordGUIFwd::handle_event()
-{
-       return 1;
-}
-
-int RecordGUIFwd::button_press()
-{
-       return 1;
-}
-
-int RecordGUIFwd::button_release()
-{
-       unset_repeat(repeat_id);
-       return 1;
-}
-
-int RecordGUIFwd::repeat_event()
-{
-       return 0;
-}
-
-int RecordGUIFwd::keypress_event()
-{
-       return 0;
-}
-
-
-
-RecordGUIEnd::RecordGUIEnd(RecordTransport *record_transport, int x, int y)
- : BC_Button(x, y, record_transport->mwindow->theme->get_image_set("end"))
-{ 
-       this->record_transport = record_transport; 
-       set_tooltip(_("Seek to end of recording"));
-}
-
-RecordGUIEnd::~RecordGUIEnd()
-{
-}
-
-int RecordGUIEnd::handle_event()
-{
-       return 1;
-}
-
-int RecordGUIEnd::keypress_event()
-{
-       return 0;
-}
-