merged hv7 mod
[goodguy/history.git] / cinelerra-5.1 / cinelerra / recordprefs.C
index 5ca3bb84c19be6efa0f86d62cc477332a0476a47..5851eb90995d279081e2e37d850703ab9ad3d0ac 100644 (file)
@@ -2,21 +2,21 @@
 /*
  * CINELERRA
  * Copyright (C) 2008-2013 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 "adeviceprefs.h"
@@ -54,23 +54,26 @@ RecordPrefs::~RecordPrefs()
 
 void RecordPrefs::create_objects()
 {
-       int x, y, x2;
+       int x, y, x1, x2;
        char string[BCTEXTLEN];
        BC_Resources *resources = BC_WindowBase::get_resources();
        BC_Title *title;
+       BC_Title *title0, *title1, *title2, *title3;
+       BC_TextBox *textbox;
 
        x = mwindow->theme->preferencesoptions_x;
        y = mwindow->theme->preferencesoptions_y;
+       int margin = mwindow->theme->widget_border;
        int x0 = x, y0 = y;
 
-       add_subwindow(title = new BC_Title(x, y, _("File Format:"), 
+       add_subwindow(title = new BC_Title(x, y, _("File Format:"),
                LARGEFONT, resources->text_default));
-       y += title->get_h() + 5;
+       y += title->get_h() + margin;
 
-       recording_format = new FormatTools(mwindow, this, 
+       recording_format = new FormatTools(mwindow, this,
                        pwindow->thread->edl->session->recording_format);
 
-       recording_format->create_objects(x, y, 
+       recording_format->create_objects(x, y,
                1,  // Include tools for audio
                1,  // Include tools for video
                1,  // Include checkbox for audio
@@ -87,46 +90,44 @@ void RecordPrefs::create_objects()
        add_subwindow(realtime_toc);
 
 // Audio hardware
-       add_subwindow(new BC_Bar(5, y,  get_w() - 10));
-       y += 5;
+       add_subwindow(new BC_Bar(x, y,  get_w() - x * 2));
+       y += margin;
 
 
-       add_subwindow(title = new BC_Title(x, y, 
-               _("Audio In"), LARGEFONT, 
+       add_subwindow(title = new BC_Title(x, y,
+               _("Audio In"), LARGEFONT,
                resources->text_default));
 
-       y += title->get_h() + 5;
+       y += title->get_h() + margin;
 
        add_subwindow(new BC_Title(x, y, _("Record Driver:"),
                MEDIUMFONT, resources->text_default));
        audio_in_device = new ADevicePrefs(x + 110, y, pwindow, this, 0,
                pwindow->thread->edl->session->aconfig_in, MODERECORD);
        audio_in_device->initialize(1);
-       y += audio_in_device->get_h(1);
+       y += audio_in_device->get_h(1) + margin;
 
 
-       BC_TextBox *textbox;
-       BC_Title *title0, *title1, *title2, *title3;
        int pad = RecordWriteLength::calculate_h(this,
                MEDIUMFONT,
                1,
-               1) + 
+               1) +
                mwindow->theme->widget_border;
        add_subwindow(title0 = new BC_Title(x, y, _("Samples read from device:")));
        add_subwindow(title1 = new BC_Title(x, y + pad, _("Samples to write to disk:")));
        add_subwindow(title2 = new BC_Title(x, y + pad * 2, _("Sample rate for recording:")));
        add_subwindow(title3 = new BC_Title(x, y + pad * 3, _("Channels to record:")));
-       x2 = MAX(title0->get_w(), title1->get_w()) + mwindow->theme->widget_border;
-       x2 = MAX(x2, title2->get_w() + mwindow->theme->widget_border);
-       x2 = MAX(x2, title3->get_w() + mwindow->theme->widget_border);
+       x2 = MAX(title0->get_w(), title1->get_w()) + margin;
+       x2 = MAX(x2, title2->get_w() + margin);
+       x2 = MAX(x2, title3->get_w() + margin);
 
 
        sprintf(string, "%ld", (long)pwindow->thread->edl->session->record_fragment_size);
        RecordFragment *menu;
        add_subwindow(menu = new RecordFragment(x2,
                y,
-               pwindow, 
-               this, 
+               pwindow,
+               this,
                string));
        y += menu->get_h() + mwindow->theme->widget_border;
        menu->add_item(new BC_MenuItem("1024"));
@@ -143,9 +144,9 @@ void RecordPrefs::create_objects()
        add_subwindow(textbox = new RecordWriteLength(mwindow, pwindow, x2, y, string));
        y += textbox->get_h() + mwindow->theme->widget_border;
        add_subwindow(textbox = new RecordSampleRate(pwindow, x2, y));
-       add_subwindow(new SampleRatePulldown(mwindow, 
-               textbox, 
-               x2 + textbox->get_w(), 
+       add_subwindow(new SampleRatePulldown(mwindow,
+               textbox,
+               x2 + textbox->get_w(),
                y));
        y += textbox->get_h() + mwindow->theme->widget_border;
 
@@ -153,7 +154,7 @@ void RecordPrefs::create_objects()
        channels->create_objects();
        y += channels->get_h() + mwindow->theme->widget_border;
 
-       RecordMap51_2 *record_map51_2 = new RecordMap51_2(mwindow, pwindow, x, y, 
+       RecordMap51_2 *record_map51_2 = new RecordMap51_2(mwindow, pwindow, x, y,
                pwindow->thread->edl->session->aconfig_in->map51_2);
        add_subwindow(record_map51_2);
 
@@ -165,7 +166,7 @@ void RecordPrefs::create_objects()
        rec_gain->create_objects();
 
        x2 += rec_gain->get_w() + 30;
-       add_subwindow(new RecordRealTime(mwindow, pwindow, x2, y, 
+       add_subwindow(new RecordRealTime(mwindow, pwindow, x2, y,
                pwindow->thread->edl->session->real_time_record));
        y += 30;
        x = 5;
@@ -173,31 +174,36 @@ void RecordPrefs::create_objects()
 
 // Video hardware
        add_subwindow(new BC_Bar(5, y,  get_w() - 10));
-       y += 5;
+       y += margin;
 
-       add_subwindow(new BC_Title(x, y, _("Video In"), LARGEFONT,
+       add_subwindow(title1 = new BC_Title(x, y, _("Video In"), LARGEFONT,
                resources->text_default));
-       y += 25;
+       y += title1->get_h() + margin;
 
-       add_subwindow(new BC_Title(x, y, _("Record Driver:"), MEDIUMFONT, 
+       add_subwindow(title1 = new BC_Title(x, y, _("Record Driver:"), MEDIUMFONT,
                resources->text_default));
-       video_in_device = new VDevicePrefs(x + 110, y, pwindow, this, 0, 
-               pwindow->thread->edl->session->vconfig_in, MODERECORD);
+       video_in_device = new VDevicePrefs(x + title1->get_w() + margin, y,
+               pwindow, this, 0, pwindow->thread->edl->session->vconfig_in, MODERECORD);
        video_in_device->initialize(1);
+       y += video_in_device->get_h() + margin;
 
-       y += 55;
+       add_subwindow(title1 = new BC_Title(x, y, _("Frames to record to disk at a time:")));
+       x1 = x + title1->get_w() + margin;
        sprintf(string, "%d", pwindow->thread->edl->session->video_write_length);
-       add_subwindow(textbox = new VideoWriteLength(pwindow, string, y));
-       add_subwindow(new CaptureLengthTumbler(pwindow, textbox, textbox->get_x() + textbox->get_w(), y));
-       add_subwindow(new BC_Title(x, y, _("Frames to record to disk at a time:")));
+       add_subwindow(textbox = new VideoWriteLength(pwindow, string, x1, y));
+       x1 += textbox->get_w() + margin;
+       add_subwindow(new CaptureLengthTumbler(pwindow, textbox, x1, y));
        y += 27;
+
+       add_subwindow(title1 = new BC_Title(x, y, _("Frames to buffer in device:")));
+       x1 = x + title1->get_w() + margin;
        sprintf(string, "%d", pwindow->thread->edl->session->vconfig_in->capture_length);
-       add_subwindow(textbox = new VideoCaptureLength(pwindow, string, y));
-       add_subwindow(new CaptureLengthTumbler(pwindow, textbox, textbox->get_x() + textbox->get_w(), y));
-       add_subwindow(new BC_Title(x, y, _("Frames to buffer in device:")));
+       add_subwindow(textbox = new VideoCaptureLength(pwindow, string, x1, y));
+       x1 += textbox->get_w() + margin;
+       add_subwindow(new CaptureLengthTumbler(pwindow, textbox, x1, y));
        y += 27;
 
-       int x1 = x;
+       x1 = x;
        add_subwindow(new BC_Title(x1, y, _("Positioning:")));
        x1 += 100;
        add_subwindow(textbox = new BC_TextBox(x1, y, 200, 1, ""));
@@ -206,29 +212,30 @@ void RecordPrefs::create_objects()
        positioning->create_objects();
        y += positioning->get_h() + 5;
 
-       add_subwindow(new RecordSyncDrives(pwindow, 
-               pwindow->thread->edl->session->record_sync_drives, 
+       add_subwindow(new RecordSyncDrives(pwindow,
+               pwindow->thread->edl->session->record_sync_drives,
                x, y));
        y += 35;
 
        BC_TextBox *w_text, *h_text;
-       add_subwindow(new BC_Title(x, y, _("Size of captured frame:")));
-       x += 170;
+       add_subwindow(title1 = new BC_Title(x, y, _("Size of captured frame:")));
+       x += title1->get_w() + margin;
        add_subwindow(w_text = new RecordW(pwindow, x, y));
-       x += w_text->get_w() + 2;
-       add_subwindow(new BC_Title(x, y, "x"));
-       x += 10;
+       x += w_text->get_w() + margin;
+       add_subwindow(title1 = new BC_Title(x, y, "x"));
+       x += title1->get_w() + margin;
        add_subwindow(h_text = new RecordH(pwindow, x, y));
-       x += h_text->get_w();
-       add_subwindow(new FrameSizePulldown(mwindow->theme, 
+       x += h_text->get_w() + margin;
+       FrameSizePulldown *tumbler;
+       add_subwindow(tumbler = new FrameSizePulldown(mwindow->theme, 
                w_text, h_text, x, y));
+       y += tumbler->get_h() + margin;
 
-       y += 30;
-       x = 5;
-       add_subwindow(new BC_Title(x, y, _("Frame rate for recording:")));
-       x += 180;
+       x = mwindow->theme->preferencesoptions_x;
+       add_subwindow(title1 = new BC_Title(x, y, _("Frame rate for recording:")));
+       x += title1->get_w() + margin;
        add_subwindow(textbox = new RecordFrameRate(pwindow, x, y));
-       x += 75;
+       x += textbox->get_w() + margin;
        add_subwindow(new FrameRatePulldown(mwindow, textbox, x, y));
 
 }
@@ -248,24 +255,24 @@ int RecordPrefs::show_window(int flush)
 
 
 
-RecordFragment::RecordFragment(int x, 
-       int y, 
-       PreferencesWindow *pwindow, 
-       RecordPrefs *record, 
+RecordFragment::RecordFragment(int x,
+       int y,
+       PreferencesWindow *pwindow,
+       RecordPrefs *record,
        char *text)
- : BC_PopupMenu(x, 
-       y, 
-       100, 
+ : BC_PopupMenu(x,
+       y,
+       100,
        text,
        1)
-{ 
+{
        this->pwindow = pwindow;
        this->record = record;
 }
 
-int RecordFragment::handle_event() 
+int RecordFragment::handle_event()
 {
-       pwindow->thread->edl->session->record_fragment_size = atol(get_text()); 
+       pwindow->thread->edl->session->record_fragment_size = atol(get_text());
        return 1;
 }
 
@@ -277,23 +284,23 @@ int RecordFragment::handle_event()
 
 RecordWriteLength::RecordWriteLength(MWindow *mwindow, PreferencesWindow *pwindow, int x, int y, char *text)
  : BC_TextBox(x, y, 100, 1, text)
-{ 
-       this->pwindow = pwindow; 
+{
+       this->pwindow = pwindow;
 }
 
 int RecordWriteLength::handle_event()
-{ 
+{
        pwindow->thread->edl->session->record_write_length = atol(get_text());
-       return 1; 
+       return 1;
 }
 
 
-RecordRealTime::RecordRealTime(MWindow *mwindow, 
+RecordRealTime::RecordRealTime(MWindow *mwindow,
        PreferencesWindow *pwindow, int x, int y, int value)
- : BC_CheckBox(x, y, value, 
+ : BC_CheckBox(x, y, value,
        _("Record in realtime priority (root only)"))
-{ 
-       this->pwindow = pwindow; 
+{
+       this->pwindow = pwindow;
 }
 
 int RecordRealTime::handle_event()
@@ -303,11 +310,11 @@ int RecordRealTime::handle_event()
 }
 
 
-RecordMap51_2::RecordMap51_2(MWindow *mwindow, 
+RecordMap51_2::RecordMap51_2(MWindow *mwindow,
        PreferencesWindow *pwindow, int x, int y, int value)
  : BC_CheckBox(x, y, value, _("Map 5.1->2"))
-{ 
-       this->pwindow = pwindow; 
+{
+       this->pwindow = pwindow;
 }
 
 int RecordMap51_2::handle_event()
@@ -329,11 +336,11 @@ int RecordSampleRate::handle_event()
 }
 
 
-RecordRealtimeTOC::RecordRealtimeTOC(MWindow *mwindow, 
+RecordRealtimeTOC::RecordRealtimeTOC(MWindow *mwindow,
        PreferencesWindow *pwindow, int x, int y, int value)
  : BC_CheckBox(x, y, value, _("Realtime TOC"))
-{ 
-       this->pwindow = pwindow; 
+{
+       this->pwindow = pwindow;
 }
 
 int RecordRealtimeTOC::handle_event()
@@ -346,12 +353,12 @@ int RecordRealtimeTOC::handle_event()
 // DuplexEnable::DuplexEnable(MWindow *mwindow, PreferencesWindow *pwindow, int x, int y, int value)
 //  : BC_CheckBox(x, y, value, _("Enable full duplex"))
 // { this->pwindow = pwindow; }
-// 
+//
 // int DuplexEnable::handle_event()
 // {
 //     pwindow->thread->edl->session->enable_duplex = get_value();
 // }
-// 
+//
 
 
 RecordW::RecordW(PreferencesWindow *pwindow, int x, int y)
@@ -377,7 +384,7 @@ int RecordH::handle_event()
 }
 
 RecordFrameRate::RecordFrameRate(PreferencesWindow *pwindow, int x, int y)
- : BC_TextBox(x, y, 70, 1, pwindow->thread->edl->session->vconfig_in->in_framerate)
+ : BC_TextBox(x, y, 140, 1, pwindow->thread->edl->session->vconfig_in->in_framerate)
 {
        this->pwindow = pwindow;
 }
@@ -390,11 +397,11 @@ int RecordFrameRate::handle_event()
 
 
 RecordChannels::RecordChannels(PreferencesWindow *pwindow, BC_SubWindow *gui, int x, int y)
- : BC_TumbleTextBox(gui, 
+ : BC_TumbleTextBox(gui,
                pwindow->thread->edl->session->aconfig_in->channels,
                1, MAX_CHANNELS, x, y, 100)
 {
-       this->pwindow = pwindow; 
+       this->pwindow = pwindow;
 }
 
 int RecordChannels::handle_event()
@@ -408,7 +415,7 @@ RecordGain::RecordGain(PreferencesWindow *pwindow, BC_SubWindow *gui, int x, int
                pwindow->thread->edl->session->aconfig_in->rec_gain,
                0.0001f, 10000.0f, x, y, 72)
 {
-       this->pwindow = pwindow; 
+       this->pwindow = pwindow;
        this->set_increment(0.1);
 }
 
@@ -420,29 +427,29 @@ int RecordGain::handle_event()
 
 
 
-VideoWriteLength::VideoWriteLength(PreferencesWindow *pwindow, char *text, int y)
- : BC_TextBox(260, y, 100, 1, text)
-{ 
-       this->pwindow = pwindow; 
+VideoWriteLength::VideoWriteLength(PreferencesWindow *pwindow, char *text, int x, int y)
+ : BC_TextBox(x, y, 100, 1, text)
+{
+       this->pwindow = pwindow;
 }
 
 int VideoWriteLength::handle_event()
-{ 
-       pwindow->thread->edl->session->video_write_length = atol(get_text()); 
+{
+       pwindow->thread->edl->session->video_write_length = atol(get_text());
        return 1;
 }
 
 
-VideoCaptureLength::VideoCaptureLength(PreferencesWindow *pwindow, char *text, int y)
- : BC_TextBox(260, y, 100, 1, text)
-{ 
+VideoCaptureLength::VideoCaptureLength(PreferencesWindow *pwindow, char *text, int x, int y)
+ : BC_TextBox(x, y, 100, 1, text)
+{
        this->pwindow = pwindow;
 }
 
 int VideoCaptureLength::handle_event()
-{ 
-       pwindow->thread->edl->session->vconfig_in->capture_length = atol(get_text()); 
-       return 1; 
+{
+       pwindow->thread->edl->session->vconfig_in->capture_length = atol(get_text());
+       return 1;
 }
 
 CaptureLengthTumbler::CaptureLengthTumbler(PreferencesWindow *pwindow, BC_TextBox *text, int x, int y)
@@ -512,12 +519,12 @@ int RecordPositioning::handle_event()
 RecordSyncDrives::RecordSyncDrives(PreferencesWindow *pwindow, int value, int x, int y)
  : BC_CheckBox(x, y, value, _("Sync drives automatically"))
 {
-       this->pwindow = pwindow; 
+       this->pwindow = pwindow;
 }
 
-int RecordSyncDrives::handle_event() 
+int RecordSyncDrives::handle_event()
 {
-       pwindow->thread->edl->session->record_sync_drives = get_value(); 
+       pwindow->thread->edl->session->record_sync_drives = get_value();
        return 1;
 }