2021-03-25 Fred Gleason <fredg@paravelsystems.com>

* Refactored layout of 'RDMarkerDialog'

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2021-03-25 11:40:24 -04:00
parent 99d81a326b
commit 1790af2a94
16 changed files with 1056 additions and 456 deletions

View File

@ -21342,3 +21342,5 @@
* Fixed regressions in the 'Edit Cart' dialog in rdlibrary(1) that
caused focus on the Cut entry to be lost after modifying cut
attributes.
2021-03-25 Fred Gleason <fredg@paravelsystems.com>
* Refactored layout of 'RDMarkerDialog'

View File

@ -3602,31 +3602,31 @@ Out</translation>
</message>
<message>
<source>Goto</source>
<translation type="unfinished">Přejít na</translation>
<translation type="obsolete">Přejít na</translation>
</message>
<message>
<source>Cursor</source>
<translation type="unfinished">Ukazovátko</translation>
<translation type="obsolete">Ukazovátko</translation>
</message>
<message>
<source>Home</source>
<translation type="unfinished">Domov</translation>
<translation type="obsolete">Domov</translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Konec</translation>
<translation type="obsolete">Konec</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Žádné prolínání při přechodu ven</translation>
<translation type="obsolete">Žádné prolínání při přechodu ven</translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Zesílení záběru</translation>
<translation type="obsolete">Zesílení záběru</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
<translation type="obsolete">dB</translation>
</message>
</context>
<context>
@ -3639,6 +3639,57 @@ Out</translation>
<source>Length</source>
<translation type="unfinished">Délka</translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Konec</translation>
</message>
<message>
<source>Cursor Position</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Zesílení záběru</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Žádné prolínání při přechodu ven</translation>
</message>
<message>
<source>Trim Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Threshold</source>
<translation type="unfinished">Prahová hodnota</translation>
</message>
</context>
<context>
<name>RDMarkerView</name>
@ -3678,6 +3729,10 @@ Out</translation>
<source>Delete Marker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Edit Audio</source>
<translation type="unfinished">Upravit zvuk</translation>
</message>
</context>
<context>
<name>RDMatrixListModel</name>

View File

@ -3591,31 +3591,31 @@ Out</translation>
</message>
<message>
<source>Goto</source>
<translation type="unfinished">Gehe zu</translation>
<translation type="obsolete">Gehe zu</translation>
</message>
<message>
<source>Cursor</source>
<translation type="unfinished">Cursor</translation>
<translation type="obsolete">Cursor</translation>
</message>
<message>
<source>Home</source>
<translation type="unfinished">Home</translation>
<translation type="obsolete">Home</translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Ende</translation>
<translation type="obsolete">Ende</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Kein Fade bei Seque Out</translation>
<translation type="obsolete">Kein Fade bei Seque Out</translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Cut Gain</translation>
<translation type="obsolete">Cut Gain</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
<translation type="obsolete">dB</translation>
</message>
</context>
<context>
@ -3628,6 +3628,57 @@ Out</translation>
<source>Length</source>
<translation type="unfinished">Länge</translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Ende</translation>
</message>
<message>
<source>Cursor Position</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Cut Gain</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Kein Fade bei Seque Out</translation>
</message>
<message>
<source>Trim Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Threshold</source>
<translation type="unfinished">Threshold</translation>
</message>
</context>
<context>
<name>RDMarkerView</name>
@ -3667,6 +3718,10 @@ Out</translation>
<source>Delete Marker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Edit Audio</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RDMatrixListModel</name>

View File

@ -3578,32 +3578,32 @@ Todo</translation>
</message>
<message>
<source>Goto</source>
<translation type="unfinished">Ir a</translation>
<translation type="obsolete">Ir a</translation>
</message>
<message>
<source>Cursor</source>
<translation type="unfinished">Cursor</translation>
<translation type="obsolete">Cursor</translation>
</message>
<message>
<source>Home</source>
<translation type="unfinished">Principio</translation>
<translation type="obsolete">Principio</translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Final</translation>
<translation type="obsolete">Final</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Quitar fade en Segue</translation>
<translation type="obsolete">Quitar fade en Segue</translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Ganancia
<translation type="obsolete">Ganancia
del audio</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
<translation type="obsolete">dB</translation>
</message>
</context>
<context>
@ -3616,6 +3616,58 @@ del audio</translation>
<source>Length</source>
<translation type="unfinished">Longitud</translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Final</translation>
</message>
<message>
<source>Cursor Position</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Ganancia
del audio</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Quitar fade en Segue</translation>
</message>
<message>
<source>Trim Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Threshold</source>
<translation type="unfinished">Nivel</translation>
</message>
</context>
<context>
<name>RDMarkerView</name>
@ -3655,6 +3707,10 @@ del audio</translation>
<source>Delete Marker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Edit Audio</source>
<translation type="unfinished">Editar Audio</translation>
</message>
</context>
<context>
<name>RDMatrixListModel</name>

View File

@ -2982,33 +2982,13 @@ Out</source>
<source>Unable to open cut in audio player!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Goto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Fin</translation>
<translation type="obsolete">Fin</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished"></translation>
<source>Start</source>
<translation type="obsolete">Début</translation>
</message>
</context>
<context>
@ -3021,6 +3001,57 @@ Out</source>
<source>Length</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished">Début</translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Fin</translation>
</message>
<message>
<source>Cursor Position</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Threshold</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RDMarkerView</name>
@ -3052,6 +3083,10 @@ Out</source>
<source>Delete Marker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Edit Audio</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RDMatrixListModel</name>

View File

@ -3541,31 +3541,31 @@ ut</translation>
</message>
<message>
<source>Goto</source>
<translation type="unfinished"> til</translation>
<translation type="obsolete"> til</translation>
</message>
<message>
<source>Cursor</source>
<translation type="unfinished">Markør</translation>
<translation type="obsolete">Markør</translation>
</message>
<message>
<source>Home</source>
<translation type="unfinished">Heim</translation>
<translation type="obsolete">Heim</translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Slutten</translation>
<translation type="obsolete">Slutten</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Inga uttoning ved Overgang ut</translation>
<translation type="obsolete">Inga uttoning ved Overgang ut</translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Dempevolum</translation>
<translation type="obsolete">Dempevolum</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
<translation type="obsolete">dB</translation>
</message>
</context>
<context>
@ -3578,6 +3578,57 @@ ut</translation>
<source>Length</source>
<translation type="unfinished">Lengd</translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Slutten</translation>
</message>
<message>
<source>Cursor Position</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Dempevolum</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Inga uttoning ved Overgang ut</translation>
</message>
<message>
<source>Trim Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Threshold</source>
<translation type="unfinished">Terskel</translation>
</message>
</context>
<context>
<name>RDMarkerView</name>
@ -3617,6 +3668,10 @@ ut</translation>
<source>Delete Marker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Edit Audio</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RDMatrixListModel</name>

View File

@ -3541,31 +3541,31 @@ ut</translation>
</message>
<message>
<source>Goto</source>
<translation type="unfinished"> til</translation>
<translation type="obsolete"> til</translation>
</message>
<message>
<source>Cursor</source>
<translation type="unfinished">Markør</translation>
<translation type="obsolete">Markør</translation>
</message>
<message>
<source>Home</source>
<translation type="unfinished">Heim</translation>
<translation type="obsolete">Heim</translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Slutten</translation>
<translation type="obsolete">Slutten</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Inga uttoning ved Overgang ut</translation>
<translation type="obsolete">Inga uttoning ved Overgang ut</translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Dempevolum</translation>
<translation type="obsolete">Dempevolum</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
<translation type="obsolete">dB</translation>
</message>
</context>
<context>
@ -3578,6 +3578,57 @@ ut</translation>
<source>Length</source>
<translation type="unfinished">Lengd</translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Slutten</translation>
</message>
<message>
<source>Cursor Position</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Dempevolum</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Inga uttoning ved Overgang ut</translation>
</message>
<message>
<source>Trim Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Threshold</source>
<translation type="unfinished">Terskel</translation>
</message>
</context>
<context>
<name>RDMarkerView</name>
@ -3617,6 +3668,10 @@ ut</translation>
<source>Delete Marker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Edit Audio</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RDMatrixListModel</name>

View File

@ -3581,31 +3581,31 @@ Mínimo</translation>
</message>
<message>
<source>Goto</source>
<translation type="unfinished">Ir Até</translation>
<translation type="obsolete">Ir Até</translation>
</message>
<message>
<source>Cursor</source>
<translation type="unfinished">Cursor</translation>
<translation type="obsolete">Cursor</translation>
</message>
<message>
<source>Home</source>
<translation type="unfinished">Casa</translation>
<translation type="obsolete">Casa</translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Fim</translation>
<translation type="obsolete">Fim</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Sem Fade na Saída</translation>
<translation type="obsolete">Sem Fade na Saída</translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Ganho</translation>
<translation type="obsolete">Ganho</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
<translation type="obsolete">dB</translation>
</message>
</context>
<context>
@ -3618,6 +3618,57 @@ Mínimo</translation>
<source>Length</source>
<translation type="unfinished">Duração</translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>End</source>
<translation type="unfinished">Fim</translation>
</message>
<message>
<source>Cursor Position</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Go To
End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cut Gain</source>
<translation type="unfinished">Ganho</translation>
</message>
<message>
<source>dB</source>
<translation type="unfinished">dB</translation>
</message>
<message>
<source>No Fade on Segue Out</source>
<translation type="unfinished">Sem Fade na Saída</translation>
</message>
<message>
<source>Trim Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim End</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Threshold</source>
<translation type="unfinished">Valor Mínimo</translation>
</message>
</context>
<context>
<name>RDMarkerView</name>
@ -3657,6 +3708,10 @@ Mínimo</translation>
<source>Delete Marker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Edit Audio</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RDMatrixListModel</name>

View File

@ -72,50 +72,6 @@ RDMarkerDialog::RDMarkerDialog(const QString &caption,int card,int port,
connect(d_time_fullout_button,SIGNAL(clicked()),
d_marker_view,SLOT(setMaximumShrinkFactor()));
//
// Goto Buttons
//
d_goto_group=new QGroupBox(tr("Goto"),this);
d_goto_group->setFont(labelFont());
d_goto_cursor_button=new QPushButton(tr("Cursor"),d_goto_group);
d_goto_cursor_button->setFont(buttonFont());
connect(d_goto_cursor_button,SIGNAL(clicked()),
d_marker_view,SLOT(gotoCursor()));
d_goto_home_button=new QPushButton(tr("Home"),d_goto_group);
d_goto_home_button->setFont(buttonFont());
connect(d_goto_home_button,SIGNAL(clicked()),
d_marker_view,SLOT(gotoHome()));
d_goto_end_button=new QPushButton(tr("End"),d_goto_group);
d_goto_end_button->setFont(buttonFont());
connect(d_goto_end_button,SIGNAL(clicked()),
d_marker_view,SLOT(gotoEnd()));
//
// Fade on Segue Out
//
d_no_segue_fade_check=new QCheckBox(this);
d_no_segue_fade_label=new QLabel(tr("No Fade on Segue Out"),this);
d_no_segue_fade_label->setFont(labelFont());
connect(d_no_segue_fade_check,SIGNAL(toggled(bool)),
d_marker_view,SLOT(setNoSegueFade(bool)));
//
// Cut Gain
//
d_play_gain_spin=new QSpinBox(this);
d_play_gain_spin->setRange(-10,10);
connect(d_play_gain_spin,SIGNAL(valueChanged(int)),
d_marker_view,SLOT(setPlayGain(int)));
d_play_gain_label=new QLabel(tr("Cut Gain")+":",this);
d_play_gain_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
d_play_gain_label->setFont(labelFont());
d_play_gain_unit_label=new QLabel(tr("dB"),this);
d_play_gain_unit_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
d_play_gain_unit_label->setFont(labelFont());
/**************************************************************************
* Transport Section
**************************************************************************/
@ -132,72 +88,22 @@ RDMarkerDialog::RDMarkerDialog(const QString &caption,int card,int port,
RDMarkerHandle::PointerRole)));
connect(d_marker_view,SIGNAL(positionClicked(int)),
d_player,SLOT(setCursorPosition(int)));
//
// Marker Readouts
//
d_cut_readout=new RDMarkerReadout(RDMarkerHandle::CutStart,this);
connect(d_marker_view,
SIGNAL(pointerValueChanged(RDMarkerHandle::PointerRole,int)),
d_cut_readout,SLOT(setValue(RDMarkerHandle::PointerRole,int)));
connect(d_marker_view,
SIGNAL(selectedMarkersChanged(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)),
d_cut_readout,SLOT(setSelectedMarkers(RDMarkerHandle::PointerRole,
connect(d_player,SIGNAL(selectedMarkersChanged(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)),
d_marker_view,SLOT(setSelectedMarkers(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)));
d_cut_readout->setEnabled(true);
d_talk_readout=new RDMarkerReadout(RDMarkerHandle::TalkStart,this);
connect(d_marker_view,
SIGNAL(pointerValueChanged(RDMarkerHandle::PointerRole,int)),
d_talk_readout,SLOT(setValue(RDMarkerHandle::PointerRole,int)));
connect(d_marker_view,
SIGNAL(selectedMarkersChanged(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)),
d_talk_readout,SLOT(setSelectedMarkers(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)));
d_segue_readout=new RDMarkerReadout(RDMarkerHandle::SegueStart,this);
connect(d_marker_view,
SIGNAL(pointerValueChanged(RDMarkerHandle::PointerRole,int)),
d_segue_readout,SLOT(setValue(RDMarkerHandle::PointerRole,int)));
connect(d_marker_view,
SIGNAL(selectedMarkersChanged(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)),
d_segue_readout,SLOT(setSelectedMarkers(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)));
d_hook_readout=new RDMarkerReadout(RDMarkerHandle::HookStart,this);
connect(d_marker_view,
SIGNAL(pointerValueChanged(RDMarkerHandle::PointerRole,int)),
d_hook_readout,SLOT(setValue(RDMarkerHandle::PointerRole,int)));
connect(d_marker_view,
SIGNAL(selectedMarkersChanged(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)),
d_hook_readout,SLOT(setSelectedMarkers(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)));
d_fadeup_readout=new RDMarkerReadout(RDMarkerHandle::FadeUp,this);
connect(d_marker_view,
SIGNAL(pointerValueChanged(RDMarkerHandle::PointerRole,int)),
d_fadeup_readout,SLOT(setValue(RDMarkerHandle::PointerRole,int)));
connect(d_marker_view,
SIGNAL(selectedMarkersChanged(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)),
d_fadeup_readout,
SLOT(setSelectedMarkers(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)));
d_fadedown_readout=new RDMarkerReadout(RDMarkerHandle::FadeDown,this);
connect(d_marker_view,
SIGNAL(pointerValueChanged(RDMarkerHandle::PointerRole,int)),
d_fadedown_readout,SLOT(setValue(RDMarkerHandle::PointerRole,int)));
connect(d_marker_view,
SIGNAL(selectedMarkersChanged(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)),
d_fadedown_readout,
SLOT(setSelectedMarkers(RDMarkerHandle::PointerRole,
RDMarkerHandle::PointerRole)));
connect(d_player,SIGNAL(gotoStartClicked()),d_marker_view,SLOT(gotoHome()));
connect(d_player,SIGNAL(gotoCursorClicked()),
d_marker_view,SLOT(gotoCursor()));
connect(d_player,SIGNAL(gotoEndClicked()),d_marker_view,SLOT(gotoEnd()));
connect(d_player,SIGNAL(playGainSet(int)),
d_marker_view,SLOT(setPlayGain(int)));
connect(d_player,SIGNAL(noFadeOnSegueChanged(bool)),
d_marker_view,SLOT(setNoSegueFade(bool)));
connect(d_player,SIGNAL(startTrimClicked(int)),
d_marker_view,SLOT(trimStart(int)));
connect(d_player,SIGNAL(endTrimClicked(int)),
d_marker_view,SLOT(trimEnd(int)));
/**************************************************************************
* Navigation Section
@ -227,7 +133,7 @@ RDMarkerDialog::~RDMarkerDialog()
QSize RDMarkerDialog::sizeHint() const
{
return QSize(1000,600);
return QSize(1050,600);
}
@ -249,21 +155,8 @@ int RDMarkerDialog::exec(unsigned cartnum,int cutnum)
tr("Unable to open cut in audio player!"));
return false;
}
for(int i=0;i<RDMarkerHandle::LastRole;i++) {
RDMarkerHandle::PointerRole role=(RDMarkerHandle::PointerRole)i;
d_cut_readout->setValue(role,d_marker_view->pointerValue(role));
d_talk_readout->setValue(role,d_marker_view->pointerValue(role));
d_segue_readout->setValue(role,d_marker_view->pointerValue(role));
d_hook_readout->setValue(role,d_marker_view->pointerValue(role));
d_fadeup_readout->setValue(role,d_marker_view->pointerValue(role));
d_fadedown_readout->setValue(role,d_marker_view->pointerValue(role));
d_player->setPointerValue(role,d_marker_view->pointerValue(role));
d_player->
setSelectedMarkers(RDMarkerHandle::LastRole,RDMarkerHandle::LastRole);
}
d_marker_view->setSelectedMarker(RDMarkerHandle::CutStart);
d_no_segue_fade_check->setChecked(d_marker_view->noSegueFade());
d_play_gain_spin->setValue(d_marker_view->playGain());
d_marker_view->
setSelectedMarkers(RDMarkerHandle::CutStart,RDMarkerHandle::CutEnd);
return QDialog::exec();
}
@ -366,83 +259,11 @@ void RDMarkerDialog::resizeEvent(QResizeEvent *e)
//
// Readout Section
//
d_cut_readout->setGeometry(2,
2+d_marker_view->sizeHint().height(),
d_cut_readout->sizeHint().width(),
d_cut_readout->sizeHint().height());
d_talk_readout->setGeometry(2+1*(d_talk_readout->sizeHint().width()-2),
2+d_marker_view->sizeHint().height(),
d_talk_readout->sizeHint().width(),
d_talk_readout->sizeHint().height());
d_segue_readout->setGeometry(2+2*(d_segue_readout->sizeHint().width()-2),
2+d_marker_view->sizeHint().height(),
d_segue_readout->sizeHint().width(),
d_segue_readout->sizeHint().height());
d_hook_readout->setGeometry(2+3*(d_hook_readout->sizeHint().width()-2),
2+d_marker_view->sizeHint().height(),
d_hook_readout->sizeHint().width(),
d_hook_readout->sizeHint().height());
d_fadeup_readout->setGeometry(2,
d_marker_view->sizeHint().height()-2+
d_hook_readout->sizeHint().height(),
2*d_fadeup_readout->sizeHint().width()-2,
d_fadeup_readout->sizeHint().height());
d_fadedown_readout->setGeometry(2*d_fadedown_readout->sizeHint().width()-2,
d_marker_view->sizeHint().height()-2+
d_hook_readout->sizeHint().height(),
2*d_fadedown_readout->sizeHint().width()-2,
d_fadedown_readout->sizeHint().height());
//
// Transport Section
//
d_player->setGeometry(2*d_fadedown_readout->sizeHint().width()+
2*d_fadedown_readout->sizeHint().width()-6,
d_player->setGeometry(2,
2+d_marker_view->sizeHint().height(),
d_player->sizeHint().width(),
d_player->sizeHint().height());
d_goto_group->setGeometry(10,
2+d_marker_view->sizeHint().height()+
d_player->sizeHint().height()+5,
90*3,
80);
d_goto_cursor_button->setGeometry(5,25,80,50);
d_goto_home_button->setGeometry(95,25,80,50);
d_goto_end_button->setGeometry(185,25,80,50);
d_no_segue_fade_check->setGeometry(200+90*3,
4+d_marker_view->sizeHint().height()+
d_player->sizeHint().height()+5,
15,
15);
d_no_segue_fade_label->setGeometry(220+90*3,
2+d_marker_view->sizeHint().height()+
d_player->sizeHint().height()+5,
200,
20);
d_play_gain_label->setGeometry(220+90*3,
2+d_marker_view->sizeHint().height()+
d_player->sizeHint().height()+5+22,
100,
20);
d_play_gain_spin->setGeometry(220+90*3+105,
2+d_marker_view->sizeHint().height()+
d_player->sizeHint().height()+5+22,
40,
20);
d_play_gain_unit_label->setGeometry(220+90*3+105+45,
2+d_marker_view->sizeHint().height()+
d_player->sizeHint().height()+5+22,
60,
20);
d_ok_button->setGeometry(w-180,h-60,80,50);
d_cancel_button->setGeometry(w-90,h-60,80,50);
}

View File

@ -26,6 +26,7 @@
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QSignalMapper>
#include <QSpinBox>
#include <QTimer>
@ -76,7 +77,6 @@ class RDMarkerDialog : public RDDialog
void timeFullInData();
void timeInData();
void timeOutData();
void okData();
void cancelData();
@ -99,25 +99,6 @@ class RDMarkerDialog : public RDDialog
RDMarkerPlayer *d_player;
RDMarkerReadout *d_cut_readout;
RDMarkerReadout *d_fadeup_readout;
RDMarkerReadout *d_fadedown_readout;
RDMarkerReadout *d_talk_readout;
RDMarkerReadout *d_segue_readout;
RDMarkerReadout *d_hook_readout;
QGroupBox *d_goto_group;
QPushButton *d_goto_cursor_button;
QPushButton *d_goto_home_button;
QPushButton *d_goto_end_button;
QCheckBox *d_no_segue_fade_check;
QLabel *d_no_segue_fade_label;
QLabel *d_play_gain_label;
QSpinBox *d_play_gain_spin;
QLabel *d_play_gain_unit_label;
QPushButton *d_ok_button;
QPushButton *d_cancel_button;
unsigned d_cart_number;

View File

@ -19,6 +19,7 @@
//
#include "rdconf.h"
#include "rdescape_string.h"
#include "rdmixer.h"
#include "rdmarkerplayer.h"
@ -41,11 +42,55 @@ RDMarkerPlayer::RDMarkerPlayer(int card,int port,QWidget *parent)
connect(rda->cae(),SIGNAL(playPositionChanged(int,unsigned)),
this,SLOT(caePositionData(int,unsigned)));
//
// Marker Readouts
//
for(int i=0;i<7;i++) {
d_readout_labels[i]=new QLabel(this);
d_readout_labels[i]->setFont(labelFont());
d_readout_labels[i]->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
}
d_readout_labels[1]->setText(tr("Start")+":");
d_readout_labels[2]->setText(tr("End")+":");
d_readout_labels[3]->setText(tr("Length")+":");
d_readout_labels[5]->setText(tr("Position")+":");
d_readout_labels[6]->setText(tr("Length")+":");
d_readout_mapper=new QSignalMapper(this);
connect(d_readout_mapper,SIGNAL(mapped(int)),
this,SLOT(readoutClickedData(int)));
d_cut_readout=new RDMarkerReadout(RDMarkerHandle::CutStart,this);
connect(d_cut_readout,SIGNAL(clicked()),d_readout_mapper,SLOT(map()));
d_readout_mapper->setMapping(d_cut_readout,(int)RDMarkerHandle::CutStart);
d_cut_readout->setEnabled(true);
d_talk_readout=new RDMarkerReadout(RDMarkerHandle::TalkStart,this);
connect(d_talk_readout,SIGNAL(clicked()),d_readout_mapper,SLOT(map()));
d_readout_mapper->setMapping(d_talk_readout,(int)RDMarkerHandle::TalkStart);
d_segue_readout=new RDMarkerReadout(RDMarkerHandle::SegueStart,this);
connect(d_segue_readout,SIGNAL(clicked()),d_readout_mapper,SLOT(map()));
d_readout_mapper->setMapping(d_segue_readout,(int)RDMarkerHandle::SegueStart);
d_hook_readout=new RDMarkerReadout(RDMarkerHandle::HookStart,this);
connect(d_hook_readout,SIGNAL(clicked()),d_readout_mapper,SLOT(map()));
d_readout_mapper->setMapping(d_hook_readout,(int)RDMarkerHandle::HookStart);
d_fadeup_readout=new RDMarkerReadout(RDMarkerHandle::FadeUp,this);
connect(d_fadeup_readout,SIGNAL(clicked()),d_readout_mapper,SLOT(map()));
d_readout_mapper->setMapping(d_fadeup_readout,(int)RDMarkerHandle::FadeUp);
d_fadedown_readout=new RDMarkerReadout(RDMarkerHandle::FadeDown,this);
connect(d_fadedown_readout,SIGNAL(clicked()),d_readout_mapper,SLOT(map()));
d_readout_mapper->setMapping(d_fadedown_readout,(int)RDMarkerHandle::FadeDown);
//
// Time Counters
//
d_position_label=new QLabel(tr("Position"),this);
d_position_label->setFont(subLabelFont());
d_position_label=new QLabel(tr("Cursor Position"),this);
d_position_label->setFont(labelFont());
d_position_label->setAlignment(Qt::AlignCenter);
d_position_label->
setPalette(QPalette(palette().color(QPalette::Background),
@ -56,29 +101,22 @@ RDMarkerPlayer::RDMarkerPlayer(int card,int port,QWidget *parent)
d_position_edit->
setStyleSheet("background-color: "+palette().color(QPalette::Base).name());
d_region_edit_label=new QLabel("Region",this);
d_region_edit_label->setFont(subLabelFont());
d_region_edit_label->setAlignment(Qt::AlignCenter);
d_region_edit_label->
setPalette(QPalette(palette().color(QPalette::Background),
QColor(RDMARKERPLAYER_HIGHLIGHT_COLOR)));
d_region_edit=new QLabel(this);
d_region_edit->setAcceptDrops(false);
d_region_edit->setAlignment(Qt::AlignCenter);
d_region_edit->
setStyleSheet("background-color: "+palette().color(QPalette::Base).name());
//
// Goto Buttons
//
d_goto_start_button=new QPushButton(tr("Go To\nStart"),this);
d_goto_start_button->setFont(buttonFont());
connect(d_goto_start_button,SIGNAL(clicked()),
this,SLOT(buttonGotoStartData()));
d_length_label=new QLabel(tr("Length"),this);
d_length_label->setFont(subLabelFont());
d_length_label->setAlignment(Qt::AlignCenter);
d_length_label->
setPalette(QPalette(palette().color(QPalette::Background),
QColor(RDMARKERPLAYER_HIGHLIGHT_COLOR)));
d_length_edit=new QLabel(this);
d_length_edit->setAcceptDrops(false);
d_length_edit->setAlignment(Qt::AlignCenter);
d_length_edit->
setStyleSheet("background-color: "+palette().color(QPalette::Base).name());
d_goto_cursor_button=new QPushButton(tr("Go To\nCursor"),this);
d_goto_cursor_button->setFont(buttonFont());
connect(d_goto_cursor_button,SIGNAL(clicked()),
this,SLOT(buttonGotoCursorData()));
d_goto_end_button=new QPushButton(tr("Go To\nEnd"),this);
d_goto_end_button->setFont(buttonFont());
connect(d_goto_end_button,SIGNAL(clicked()),this,SLOT(buttonGotoEndData()));
//
// Transport Buttons
@ -122,6 +160,53 @@ RDMarkerPlayer::RDMarkerPlayer(int card,int port,QWidget *parent)
d_meter->setMode(RDSegMeter::Peak);
d_meter_timer=new QTimer(this);
connect(d_meter_timer,SIGNAL(timeout()),this,SLOT(meterData()));
//
// Fade on Segue Out
//
d_no_segue_fade_check=new QCheckBox(this);
d_no_segue_fade_label=new QLabel(tr("No Fade on Segue Out"),this);
d_no_segue_fade_label->setFont(labelFont());
connect(d_no_segue_fade_check,SIGNAL(toggled(bool)),
this,SLOT(noFadeOnSegueData(bool)));
//
// Cut Gain
//
d_play_gain_spin=new QSpinBox(this);
d_play_gain_spin->setRange(-10,10);
connect(d_play_gain_spin,SIGNAL(valueChanged(int)),
this,SLOT(playGainData(int)));
d_play_gain_label=new QLabel(tr("Cut Gain")+":",this);
d_play_gain_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
d_play_gain_label->setFont(labelFont());
d_play_gain_unit_label=new QLabel(tr("dB"),this);
d_play_gain_unit_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
d_play_gain_unit_label->setFont(labelFont());
//
// Audio Trim
//
d_trim_start_button=new QPushButton(tr("Trim Start"),this);
d_trim_start_button->setFont(buttonFont());
connect(d_trim_start_button,SIGNAL(clicked()),
this,SLOT(buttonTrimStartData()));
d_trim_end_button=new QPushButton(tr("Trim End"),this);
d_trim_end_button->setFont(buttonFont());
connect(d_trim_end_button,SIGNAL(clicked()),
this,SLOT(buttonTrimEndData()));
d_trim_label=new QLabel(tr("Threshold"),this);
d_trim_label->setFont(labelFont());
d_trim_label->setAlignment(Qt::AlignCenter);
d_trim_spin=new QSpinBox(this);
d_trim_spin->setRange(-99,0);
d_trim_spin->setSuffix(" dBFS");
d_trim_spin->setValue(rda->libraryConf()->trimThreshold()/100);
connect(d_trim_spin,SIGNAL(valueChanged(int)),
this,SLOT(trimThresholdChanged(int)));
trimThresholdChanged(d_trim_spin->value());
}
@ -132,7 +217,7 @@ RDMarkerPlayer::~RDMarkerPlayer()
QSize RDMarkerPlayer::sizeHint() const
{
return QSize(736,96);
return QSize(1046,150);
}
@ -153,6 +238,39 @@ bool RDMarkerPlayer::setCut(unsigned cartnum,int cutnum)
rda->cae()->positionPlay(d_cae_handle,0);
RDSetMixerOutputPort(rda->cae(),d_cards.first(),d_cae_stream,d_port);
QString sql=QString("select ")+
"START_POINT,"+ // 00
"END_POINT,"+ // 01
"TALK_START_POINT,"+ // 02
"TALK_END_POINT,"+ // 03
"SEGUE_START_POINT,"+ // 04
"SEGUE_END_POINT,"+ // 05
"HOOK_START_POINT,"+ // 06
"HOOK_END_POINT,"+ // 07
"FADEUP_POINT,"+ // 08
"FADEDOWN_POINT,"+ // 09
"SEGUE_GAIN,"+ // 10
"PLAY_GAIN "+ // 11
"from CUTS where "+
"CUT_NAME=\""+RDEscapeString(RDCut::cutName(cartnum,cutnum))+"\"";
RDSqlQuery *q=new RDSqlQuery(sql);
if(q->first()) {
for(int i=0;i<RDMarkerHandle::LastRole;i++) {
RDMarkerHandle::PointerRole role=(RDMarkerHandle::PointerRole)i;
d_cut_readout->setValue(role,q->value(i).toInt());
d_talk_readout->setValue(role,q->value(i).toInt());
d_segue_readout->setValue(role,q->value(i).toInt());
d_hook_readout->setValue(role,q->value(i).toInt());
d_fadeup_readout->setValue(role,q->value(i).toInt());
d_fadedown_readout->setValue(role,q->value(i).toInt());
setPointerValue(role,q->value(i).toInt());
setSelectedMarkers(RDMarkerHandle::LastRole,RDMarkerHandle::LastRole);
}
d_no_segue_fade_check->setChecked(q->value(10).toInt()==0);
d_play_gain_spin->setValue(q->value(11).toInt()/100);
}
delete q;
return true;
}
@ -190,7 +308,12 @@ void RDMarkerPlayer::setPointerValue(RDMarkerHandle::PointerRole role,int ptr)
{
if(ptr!=d_pointers[role]) {
d_pointers[role]=ptr;
UpdateReadouts();
d_cut_readout->setValue(role,ptr);
d_talk_readout->setValue(role,ptr);
d_segue_readout->setValue(role,ptr);
d_hook_readout->setValue(role,ptr);
d_fadeup_readout->setValue(role,ptr);
d_fadedown_readout->setValue(role,ptr);
}
}
@ -202,9 +325,6 @@ void RDMarkerPlayer::setSelectedMarkers(RDMarkerHandle::PointerRole start_role,
if(start_role==RDMarkerHandle::LastRole) {
color=RDMarkerHandle::pointerRoleColor(end_role);
}
QString ss=
"color:"+RDGetTextColor(color).name()+";background-color:"+color.name();
d_region_edit_label->setStyleSheet(ss);
d_play_from_button->setAccentColor(color);
d_play_to_button->setAccentColor(color);
d_selected_markers[0]=start_role;
@ -213,7 +333,36 @@ void RDMarkerPlayer::setSelectedMarkers(RDMarkerHandle::PointerRole start_role,
d_play_from_button->setDisabled(start_role==RDMarkerHandle::LastRole);
d_play_to_button->setDisabled(end_role==RDMarkerHandle::LastRole);
UpdateReadouts();
d_cut_readout->
setSelectedMarkers(d_selected_markers[0],d_selected_markers[1]);
d_talk_readout->
setSelectedMarkers(d_selected_markers[0],d_selected_markers[1]);
d_segue_readout->
setSelectedMarkers(d_selected_markers[0],d_selected_markers[1]);
d_hook_readout->
setSelectedMarkers(d_selected_markers[0],d_selected_markers[1]);
d_fadeup_readout->
setSelectedMarkers(d_selected_markers[0],d_selected_markers[1]);
d_fadedown_readout->
setSelectedMarkers(d_selected_markers[0],d_selected_markers[1]);
}
void RDMarkerPlayer::buttonGotoStartData()
{
emit gotoStartClicked();
}
void RDMarkerPlayer::buttonGotoCursorData()
{
emit gotoCursorClicked();
}
void RDMarkerPlayer::buttonGotoEndData()
{
emit gotoEndClicked();
}
@ -311,6 +460,68 @@ void RDMarkerPlayer::buttonLoopData()
}
void RDMarkerPlayer::playGainData(int db)
{
emit playGainSet(db);
}
void RDMarkerPlayer::noFadeOnSegueData(bool state)
{
emit noFadeOnSegueChanged(state);
}
void RDMarkerPlayer::buttonTrimStartData()
{
emit startTrimClicked(d_trim_spin->value());
}
void RDMarkerPlayer::buttonTrimEndData()
{
emit endTrimClicked(d_trim_spin->value());
}
void RDMarkerPlayer::readoutClickedData(int n)
{
RDMarkerHandle::PointerRole role=(RDMarkerHandle::PointerRole)n;
switch(role) {
case RDMarkerHandle::CutStart:
case RDMarkerHandle::TalkStart:
case RDMarkerHandle::SegueStart:
case RDMarkerHandle::HookStart:
setSelectedMarkers(role,(RDMarkerHandle::PointerRole)((int)role+1));
emit selectedMarkersChanged(role,
(RDMarkerHandle::PointerRole)((int)role+1));
break;
case RDMarkerHandle::CutEnd:
case RDMarkerHandle::TalkEnd:
case RDMarkerHandle::SegueEnd:
case RDMarkerHandle::HookEnd:
setSelectedMarkers((RDMarkerHandle::PointerRole)((int)role-1),role);
emit selectedMarkersChanged((RDMarkerHandle::PointerRole)((int)role-1),
role);
break;
case RDMarkerHandle::FadeUp:
setSelectedMarkers(RDMarkerHandle::LastRole,role);
emit selectedMarkersChanged(RDMarkerHandle::LastRole,role);
break;
case RDMarkerHandle::FadeDown:
setSelectedMarkers(role,RDMarkerHandle::LastRole);
emit selectedMarkersChanged(role,RDMarkerHandle::LastRole);
break;
case RDMarkerHandle::LastRole:
break;
}
}
void RDMarkerPlayer::meterData()
{
short lvls[2];
@ -369,23 +580,104 @@ void RDMarkerPlayer::caePositionData(int handle,unsigned msec)
}
void RDMarkerPlayer::trimThresholdChanged(int dbfs)
{
d_trim_start_button->setDisabled(dbfs==0);
d_trim_end_button->setDisabled(dbfs==0);
}
void RDMarkerPlayer::resizeEvent(QResizeEvent *)
{
d_position_label->setGeometry(50,3,70,16);
d_position_edit->setGeometry(50,20,70,18);
d_region_edit_label->setGeometry(148,3,70,16);
d_region_edit->setGeometry(148,20,70,18);
d_length_label->setGeometry(246,3,70,16);
d_length_edit->setGeometry(246,20,70,18);
for(int i=0;i<7;i++) {
d_readout_labels[i]->setGeometry(2,
i*(d_cut_readout->sizeHint().height()/4-1),
15+50,
d_cut_readout->sizeHint().height()/4+1);
}
d_play_button->setGeometry(10,42,65,45);
d_play_from_button->setGeometry(80,42,65,45);
d_play_to_button->setGeometry(150,42,65,45);
d_stop_button->setGeometry(220,42,65,45);
d_loop_button->setGeometry(290,42,65,45);
d_cut_readout->setGeometry(70,
2+8,
d_cut_readout->sizeHint().width(),
d_cut_readout->sizeHint().height());
d_meter->setGeometry(370,15,d_meter->sizeHint().width(),
d_talk_readout->setGeometry(70+1*(d_talk_readout->sizeHint().width()),
2+8,
d_talk_readout->sizeHint().width(),
d_talk_readout->sizeHint().height());
d_segue_readout->setGeometry(70+2*(d_segue_readout->sizeHint().width()),
2+8,
d_segue_readout->sizeHint().width(),
d_segue_readout->sizeHint().height());
d_hook_readout->setGeometry(70+3*(d_hook_readout->sizeHint().width()),
2+8,
d_hook_readout->sizeHint().width(),
d_hook_readout->sizeHint().height());
d_fadeup_readout->setGeometry(70,
10+d_hook_readout->sizeHint().height(),
2*d_fadeup_readout->sizeHint().width(),
d_fadeup_readout->sizeHint().height());
d_fadedown_readout->setGeometry(70+2*d_fadedown_readout->sizeHint().width()-1,
10+d_hook_readout->sizeHint().height(),
2*d_fadedown_readout->sizeHint().width(),
d_fadedown_readout->sizeHint().height());
d_position_label->setGeometry(340,3,345,16);
d_position_edit->setGeometry(475,20,75,18);
d_goto_start_button->setGeometry(390,45,65,45);
d_goto_cursor_button->setGeometry(480,45,65,45);
d_goto_end_button->setGeometry(570,45,65,45);
d_play_button->setGeometry(340,97,65,45);
d_play_from_button->setGeometry(410,97,65,45);
d_play_to_button->setGeometry(480,97,65,45);
d_stop_button->setGeometry(550,97,65,45);
d_loop_button->setGeometry(620,97,65,45);
d_meter->setGeometry(695,15,d_meter->sizeHint().width(),
d_meter->sizeHint().height());
d_no_segue_fade_check->setGeometry(695,
25+d_meter->sizeHint().height(),
15,
15);
d_no_segue_fade_label->setGeometry(715,
23+d_meter->sizeHint().height(),
200,
20);
d_play_gain_label->setGeometry(655,
47+d_meter->sizeHint().height(),
100,
20);
d_play_gain_spin->setGeometry(760,
47+d_meter->sizeHint().height(),
40,
20);
d_play_gain_unit_label->setGeometry(805,
47+d_meter->sizeHint().height(),
60,
20);
d_trim_start_button->setGeometry(870,
25+d_meter->sizeHint().height(),
80,25);
d_trim_end_button->setGeometry(870,
55+d_meter->sizeHint().height(),
80,25);
d_trim_label->setGeometry(960,
30+d_meter->sizeHint().height(),
80,
20);
d_trim_spin->setGeometry(960,
47+d_meter->sizeHint().height(),
80,
20);
}
@ -403,51 +695,3 @@ void RDMarkerPlayer::paintEvent(QPaintEvent *e)
delete p;
}
void RDMarkerPlayer::UpdateReadouts()
{
//
// Region
//
switch(d_selected_markers[0]) {
case RDMarkerHandle::CutStart:
case RDMarkerHandle::TalkStart:
case RDMarkerHandle::SegueStart:
case RDMarkerHandle::HookStart:
d_region_edit->
setText(RDGetTimeLength(d_pointers[d_selected_markers[1]]-
d_pointers[d_selected_markers[0]],true,true));
break;
case RDMarkerHandle::CutEnd:
case RDMarkerHandle::TalkEnd:
case RDMarkerHandle::SegueEnd:
case RDMarkerHandle::HookEnd:
break;
case RDMarkerHandle::FadeDown:
d_region_edit->
setText(RDGetTimeLength(d_pointers[RDMarkerHandle::CutEnd]-
d_pointers[d_selected_markers[0]],true,true));
break;
case RDMarkerHandle::LastRole:
if(d_selected_markers[1]==RDMarkerHandle::FadeUp) {
d_region_edit->
setText(RDGetTimeLength(d_pointers[d_selected_markers[1]]-
d_pointers[RDMarkerHandle::CutStart],true,true));
}
break;
case RDMarkerHandle::FadeUp:
break;
}
//
// Length
//
d_length_edit->
setText(RDGetTimeLength(d_pointers[RDMarkerHandle::CutEnd]-
d_pointers[RDMarkerHandle::CutStart],true,true));
}

View File

@ -21,10 +21,13 @@
#ifndef RDMARKERPLAYER_H
#define RDMARKERPLAYER_H
#include <QCheckBox>
#include <QLabel>
#include <QLineEdit>
#include <QSpinBox>
#include <QTimer>
#include <rdmarkerreadout.h>
#include <rdmarkerview.h>
#include <rdstereometer.h>
#include <rdtransportbutton.h>
@ -52,40 +55,78 @@ class RDMarkerPlayer : public RDWidget
signals:
void cursorPositionChanged(unsigned msec);
void selectedMarkersChanged(RDMarkerHandle::PointerRole start_role,
RDMarkerHandle::PointerRole end_role);
void gotoStartClicked();
void gotoCursorClicked();
void gotoEndClicked();
void noFadeOnSegueChanged(bool state);
void playGainSet(int db);
void startTrimClicked(int dbfs);
void endTrimClicked(int dbfs);
private slots:
void buttonGotoStartData();
void buttonGotoCursorData();
void buttonGotoEndData();
void buttonPlayData();
void buttonPlayFromData();
void buttonPlayToData();
void buttonStopData();
void buttonLoopData();
void playGainData(int db);
void noFadeOnSegueData(bool state);
void buttonTrimStartData();
void buttonTrimEndData();
void readoutClickedData(int role);
void meterData();
void caePlayedData(int handle);
void caePausedData(int handle);
void caePositionData(int handle,unsigned pos);
void trimThresholdChanged(int dbfs);
protected:
void resizeEvent(QResizeEvent *);
void paintEvent(QPaintEvent *e);
private:
void UpdateReadouts();
QLabel *d_readout_labels[7];
QSignalMapper *d_readout_mapper;
RDMarkerReadout *d_cut_readout;
RDMarkerReadout *d_fadeup_readout;
RDMarkerReadout *d_fadedown_readout;
RDMarkerReadout *d_talk_readout;
RDMarkerReadout *d_segue_readout;
RDMarkerReadout *d_hook_readout;
QLabel *d_position_label;
QLabel *d_position_edit;
QLabel *d_region_edit_label;
QLabel *d_region_edit;
QLabel *d_length_label;
QLabel *d_length_edit;
QPushButton *d_goto_start_button;
QPushButton *d_goto_cursor_button;
QPushButton *d_goto_end_button;
RDTransportButton *d_play_button;
RDTransportButton *d_play_from_button;
RDTransportButton *d_play_to_button;
RDTransportButton *d_active_play_button;
RDTransportButton *d_stop_button;
RDTransportButton *d_loop_button;
RDStereoMeter *d_meter;
QTimer *d_meter_timer;
QCheckBox *d_no_segue_fade_check;
QLabel *d_no_segue_fade_label;
QLabel *d_play_gain_label;
QSpinBox *d_play_gain_spin;
QLabel *d_play_gain_unit_label;
QPushButton *d_trim_start_button;
QPushButton *d_trim_end_button;
QLabel *d_trim_label;
QSpinBox *d_trim_spin;
QList<int> d_cards;
int d_port;
int d_cae_stream;

View File

@ -25,7 +25,7 @@
RDMarkerReadout::RDMarkerReadout(RDMarkerHandle::PointerRole role,
QWidget *parent)
: RDWidget(parent)
: RDPushButton(parent)
{
d_roles.push_back(role);
d_selected_marker=RDMarkerHandle::LastRole;
@ -40,7 +40,7 @@ RDMarkerReadout::RDMarkerReadout(RDMarkerHandle::PointerRole role,
case RDMarkerHandle::SegueStart:
case RDMarkerHandle::HookStart:
d_roles.push_back((RDMarkerHandle::PointerRole)(role+1));
for(int i=0;i<2;i++) {
for(int i=0;i<3;i++) {
d_edits.push_back(new QLabel(this));
d_edits.back()->setFrameShape(QFrame::Box);
d_edits.back()->setFrameShadow(QFrame::Sunken);
@ -51,11 +51,13 @@ RDMarkerReadout::RDMarkerReadout(RDMarkerHandle::PointerRole role,
case RDMarkerHandle::FadeUp:
case RDMarkerHandle::FadeDown:
d_edits.push_back(new QLabel(this));
d_edits.back()->setFrameShape(QFrame::Box);
d_edits.back()->setFrameShadow(QFrame::Sunken);
d_edits.back()->setAlignment(Qt::AlignCenter);
d_edits.back()->setText("0:00:00");
for(int i=0;i<2;i++) {
d_edits.push_back(new QLabel(this));
d_edits.back()->setFrameShape(QFrame::Box);
d_edits.back()->setFrameShadow(QFrame::Sunken);
d_edits.back()->setAlignment(Qt::AlignCenter);
d_edits.back()->setText("0:00:00");
}
break;
case RDMarkerHandle::CutEnd:
@ -81,7 +83,7 @@ RDMarkerReadout::~RDMarkerReadout()
QSize RDMarkerReadout::sizeHint() const
{
return QSize(labelFontMetrics()->width("00:00:00")+10,20+20*d_edits.size());
return QSize(65,21+18*d_edits.size());
}
@ -93,15 +95,56 @@ QSizePolicy RDMarkerReadout::sizePolicy() const
void RDMarkerReadout::setValue(RDMarkerHandle::PointerRole role,int value)
{
for(int i=0;i<d_roles.size();i++) {
if(d_roles.at(i)==role) {
if(value>=0) {
d_edits.at(i)->setText(RDGetTimeLength(value,true,true));
if(d_pointers[role]!=value) {
d_pointers[role]=value;
for(int i=0;i<d_roles.size();i++) {
if(d_roles.at(i)==role) {
if(value>=0) {
d_edits.at(i)->setText(RDGetTimeLength(value,true,true));
}
else {
d_edits.at(i)->setText("0:00:00");
}
setEnabled(value>=0);
}
}
switch(d_roles.first()) {
case RDMarkerHandle::CutStart:
case RDMarkerHandle::TalkStart:
case RDMarkerHandle::SegueStart:
case RDMarkerHandle::HookStart:
if((d_pointers[d_roles.first()]<0)||(d_pointers[d_roles.last()]<0)) {
d_edits.last()->setText("0:00:00");
}
else {
d_edits.at(i)->setText("0:00:00");
d_edits.last()->setText(RDGetTimeLength(d_pointers[d_roles.last()]-d_pointers[d_roles.first()],true,true));
}
setEnabled(value>=0);
break;
case RDMarkerHandle::FadeUp:
if(d_pointers[d_roles.first()]<0) {
d_edits.last()->setText("0:00:00");
}
else {
d_edits.last()->setText(RDGetTimeLength(d_pointers[d_roles.first()]-d_pointers[RDMarkerHandle::CutStart],true,true));
}
break;
case RDMarkerHandle::FadeDown:
if(d_pointers[d_roles.first()]<0) {
d_edits.last()->setText("0:00:00");
}
else {
d_edits.last()->setText(RDGetTimeLength(d_pointers[RDMarkerHandle::CutEnd]-d_pointers[d_roles.first()],true,true));
}
break;
case RDMarkerHandle::CutEnd:
case RDMarkerHandle::TalkEnd:
case RDMarkerHandle::LastRole:
case RDMarkerHandle::SegueEnd:
case RDMarkerHandle::HookEnd:
break;
}
}
}
@ -135,13 +178,19 @@ void RDMarkerReadout::setEnabled(bool state)
"color: "+
RDGetTextColor(RDMarkerHandle::
pointerRoleColor(d_roles.first())).name());
setCursor(Qt::PointingHandCursor);
}
else {
d_label->setStyleSheet("background-color: "+LABEL_DISABLED_COLOR);
unsetCursor();
}
for(int i=0;i<d_edits.size();i++) {
if(!state) {
d_edits.at(i)->setStyleSheet("");
}
d_edits.at(i)->setEnabled(state);
}
QPushButton::setEnabled(state);
}

View File

@ -25,9 +25,9 @@
#include <QList>
#include <rdmarkerview.h>
#include <rdwidget.h>
#include <rdpushbutton.h>
class RDMarkerReadout : public RDWidget
class RDMarkerReadout : public RDPushButton
{
Q_OBJECT;
public:
@ -51,6 +51,7 @@ class RDMarkerReadout : public RDWidget
QList <QLabel *> d_edits;
QList<RDMarkerHandle::PointerRole> d_roles;
RDMarkerHandle::PointerRole d_selected_marker;
int d_pointers[RDMarkerHandle::LastRole];
};

View File

@ -20,12 +20,14 @@
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
#include <QMessageBox>
#include <QMouseEvent>
#include <QPen>
#include <QScrollBar>
#include "rdescape_string.h"
#include "rdmarkerview.h"
#include "rdtrimaudio.h"
#define LEFT_MARGIN 30
@ -55,6 +57,8 @@ RDMarkerHandle::RDMarkerHandle(RDMarkerHandle::PointerRole role,
d_name=RDMarkerHandle::pointerRoleTypeText(role);
d_role=role;
setToolTip(RDMarkerHandle::pointerRoleTypeText(role));
setAcceptHoverEvents(true);
}
@ -104,6 +108,22 @@ void RDMarkerHandle::setSelected(bool state)
}
void RDMarkerHandle::hoverEnterEvent(QGraphicsSceneHoverEvent *e)
{
RDMarkerView *view=static_cast<RDMarkerView *>(d_marker_view);
view->setCursor(Qt::PointingHandCursor);
}
void RDMarkerHandle::hoverLeaveEvent(QGraphicsSceneHoverEvent *e)
{
RDMarkerView *view=static_cast<RDMarkerView *>(d_marker_view);
view->unsetCursor();
}
void RDMarkerHandle::mousePressEvent(QGraphicsSceneMouseEvent *e)
{
RDMarkerView *view=static_cast<RDMarkerView *>(d_marker_view);
@ -120,7 +140,7 @@ void RDMarkerHandle::mousePressEvent(QGraphicsSceneMouseEvent *e)
}
}
}
view->setSelectedMarker(d_role);
view->setSelectedMarkers(d_role,RDMarkerHandle::LastRole);
}
if(e->button()==Qt::RightButton) {
@ -466,65 +486,6 @@ bool RDMarkerView::hasUnsavedChanges() const
return d_has_unsaved_changes;
}
void RDMarkerView::setSelectedMarker(RDMarkerHandle::PointerRole role)
{
switch(role) {
case RDMarkerHandle::CutEnd:
case RDMarkerHandle::TalkEnd:
case RDMarkerHandle::SegueEnd:
case RDMarkerHandle::HookEnd:
d_selected_markers[0]=(RDMarkerHandle::PointerRole)((int)role-1);
d_selected_markers[1]=role;
break;
case RDMarkerHandle::CutStart:
case RDMarkerHandle::TalkStart:
case RDMarkerHandle::SegueStart:
case RDMarkerHandle::HookStart:
d_selected_markers[0]=role;
d_selected_markers[1]=(RDMarkerHandle::PointerRole)((int)role+1);
break;
case RDMarkerHandle::FadeUp:
d_selected_markers[0]=RDMarkerHandle::LastRole;
d_selected_markers[1]=RDMarkerHandle::FadeUp;
break;
case RDMarkerHandle::FadeDown:
if(role!=d_selected_markers[0]) {
for(int i=0;i<RDMarkerHandle::LastRole;i++) {
for(int j=0;j<2;j++) {
if(d_handles[i][j]!=NULL) {
d_handles[i][j]->
setSelected(role==(RDMarkerHandle::PointerRole)i);
}
}
}
}
d_selected_markers[0]=RDMarkerHandle::FadeDown;
d_selected_markers[1]=RDMarkerHandle::LastRole;
break;
case RDMarkerHandle::LastRole:
d_selected_markers[0]=RDMarkerHandle::LastRole;
d_selected_markers[1]=RDMarkerHandle::LastRole;
break;
}
for(int i=0;i<RDMarkerHandle::LastRole;i+=2) {
for(int j=0;j<2;j++) {
if(d_handles[i][j]!=NULL) {
d_handles[i][j]->
setSelected(d_selected_markers[0]==(RDMarkerHandle::PointerRole)i);
d_handles[i+1][j]->
setSelected(d_selected_markers[1]==(RDMarkerHandle::PointerRole)i+1);
}
}
}
emit selectedMarkersChanged(d_selected_markers[0],d_selected_markers[1]);
}
void RDMarkerView::processRightClick(RDMarkerHandle::PointerRole role,
const QPointF &pos)
{
@ -560,6 +521,74 @@ void RDMarkerView::updatePosition(RDMarkerHandle::PointerRole role, int ptr)
}
void RDMarkerView::setSelectedMarkers(RDMarkerHandle::PointerRole start_role,
RDMarkerHandle::PointerRole end_role)
{
switch(start_role) {
case RDMarkerHandle::CutEnd:
case RDMarkerHandle::TalkEnd:
case RDMarkerHandle::SegueEnd:
case RDMarkerHandle::HookEnd:
d_selected_markers[0]=(RDMarkerHandle::PointerRole)((int)start_role-1);
d_selected_markers[1]=start_role;
break;
case RDMarkerHandle::CutStart:
case RDMarkerHandle::TalkStart:
case RDMarkerHandle::SegueStart:
case RDMarkerHandle::HookStart:
d_selected_markers[0]=start_role;
d_selected_markers[1]=(RDMarkerHandle::PointerRole)((int)start_role+1);
break;
case RDMarkerHandle::FadeUp:
d_selected_markers[0]=RDMarkerHandle::LastRole;
d_selected_markers[1]=RDMarkerHandle::FadeUp;
break;
case RDMarkerHandle::FadeDown:
if(start_role!=d_selected_markers[0]) {
for(int i=0;i<RDMarkerHandle::LastRole;i++) {
for(int j=0;j<2;j++) {
if(d_handles[i][j]!=NULL) {
d_handles[i][j]->
setSelected(start_role==(RDMarkerHandle::PointerRole)i);
}
}
}
}
d_selected_markers[0]=RDMarkerHandle::FadeDown;
d_selected_markers[1]=RDMarkerHandle::LastRole;
break;
case RDMarkerHandle::LastRole:
d_selected_markers[0]=RDMarkerHandle::LastRole;
d_selected_markers[1]=RDMarkerHandle::FadeUp;
break;
}
for(int i=0;i<RDMarkerHandle::LastRole;i+=2) {
for(int j=0;j<2;j++) {
if(d_handles[i][j]!=NULL) {
d_handles[i][j]->
setSelected(d_selected_markers[0]==(RDMarkerHandle::PointerRole)i);
}
if(d_handles[i+1][j]!=NULL) {
d_handles[i+1][j]->
setSelected(d_selected_markers[1]==(RDMarkerHandle::PointerRole)i+1);
}
}
}
for(int j=0;j<2;j++) { // And the FadeUp marker
if(d_handles[RDMarkerHandle::FadeUp][j]!=NULL) {
d_handles[RDMarkerHandle::FadeUp][j]->
setSelected(d_selected_markers[1]==RDMarkerHandle::FadeUp);
}
}
emit selectedMarkersChanged(d_selected_markers[0],d_selected_markers[1]);
}
void RDMarkerView::setNoSegueFade(bool state)
{
d_has_unsaved_changes=state!=d_no_segue_fade;
@ -577,6 +606,54 @@ void RDMarkerView::setPlayGain(int db)
}
void RDMarkerView::trimStart(int dbfs)
{
RDTrimAudio::ErrorCode conv_err;
RDTrimAudio *conv=new RDTrimAudio(rda->station(),rda->config(),this);
conv->setCartNumber(d_cart_number);
conv->setCutNumber(d_cut_number);
conv->setTrimLevel(100*dbfs);
switch(conv_err=conv->runTrim(rda->user()->name(),rda->user()->password())) {
case RDTrimAudio::ErrorOk:
if(conv->startPoint()>=0) {
updatePosition(RDMarkerHandle::CutStart,conv->startPoint());
PositionMarker(RDMarkerHandle::CutStart,conv->startPoint());
}
break;
default:
QMessageBox::warning(this,tr("Edit Audio"),
RDTrimAudio::errorText(conv_err));
break;
}
delete conv;
}
void RDMarkerView::trimEnd(int dbfs)
{
RDTrimAudio::ErrorCode conv_err;
RDTrimAudio *conv=new RDTrimAudio(rda->station(),rda->config(),this);
conv->setCartNumber(d_cart_number);
conv->setCutNumber(d_cut_number);
conv->setTrimLevel(100*dbfs);
switch(conv_err=conv->runTrim(rda->user()->name(),rda->user()->password())) {
case RDTrimAudio::ErrorOk:
if(conv->endPoint()>=0) {
updatePosition(RDMarkerHandle::CutEnd,conv->endPoint());
PositionMarker(RDMarkerHandle::CutEnd,conv->endPoint());
}
break;
default:
QMessageBox::warning(this,tr("Edit Audio"),
RDTrimAudio::errorText(conv_err));
break;
}
delete conv;
}
void RDMarkerView::setAudioGain(int lvl)
{
if(d_audio_gain!=lvl) {
@ -1208,6 +1285,18 @@ void RDMarkerView::RemoveMarker(RDMarkerHandle::PointerRole role)
}
void RDMarkerView::PositionMarker(RDMarkerHandle::PointerRole role,int ptr)
{
QList<QGraphicsItem *> items=d_scene->items();
for(int i=0;i<items.size();i++) {
if(items.at(i)->toolTip()==RDMarkerHandle::pointerRoleTypeText(role)) {
items.at(i)->setPos(LEFT_MARGIN+Frame(ptr),items.at(i)->pos().y());
}
}
}
void RDMarkerView::SetReferenceLines()
{
int sh=d_scene->height();

View File

@ -57,6 +57,8 @@ class RDMarkerHandle : public QGraphicsPolygonItem
static PointerType pointerType(PointerRole role);
protected:
void hoverEnterEvent(QGraphicsSceneHoverEvent *e);
void hoverLeaveEvent(QGraphicsSceneHoverEvent *e);
void mousePressEvent(QGraphicsSceneMouseEvent *e);
void mouseMoveEvent(QGraphicsSceneMouseEvent *e);
void wheelEvent(QGraphicsSceneWheelEvent *e);
@ -96,7 +98,6 @@ class RDMarkerView : public RDWidget
int playGain() const;
bool hasUnsavedChanges() const;
void setSelectedMarker(RDMarkerHandle::PointerRole role);
void processRightClick(RDMarkerHandle::PointerRole role,
const QPointF &pos);
void updatePosition(RDMarkerHandle::PointerRole role,int ptr);
@ -108,8 +109,12 @@ class RDMarkerView : public RDWidget
RDMarkerHandle::PointerRole end_role);
public slots:
void setSelectedMarkers(RDMarkerHandle::PointerRole start_role,
RDMarkerHandle::PointerRole end_role);
void setNoSegueFade(bool state);
void setPlayGain(int db);
void trimStart(int dbfs);
void trimEnd(int dbfs);
void setAudioGain(int lvl);
void setShrinkFactor(int sf);
void setMaximumShrinkFactor();
@ -146,6 +151,7 @@ class RDMarkerView : public RDWidget
void DrawMarker(RDMarkerHandle::PointerType type,
RDMarkerHandle::PointerRole role,int handle_pos);
void RemoveMarker(RDMarkerHandle::PointerRole role);
void PositionMarker(RDMarkerHandle::PointerRole role,int ptr);
void SetReferenceLines();
QGraphicsView *d_view;
QGraphicsScene *d_scene;