layout->addWidget( m_ruler);
ui.ruler_frame->setLayout( layout );
//m_ruler->setPixelPerMark(3);
+ m_playIcon = KIcon("media-playback-start");
+ m_pauseIcon = KIcon("media-playback-pause");
+ ui.button_play->setIcon(m_playIcon);
+ ui.button_rew1->setIcon(KIcon("media-skip-backward"));
+ ui.button_rew->setIcon(KIcon("media-seek-backward"));
+ ui.button_fwd1->setIcon(KIcon("media-skip-forward"));
+ ui.button_fwd->setIcon(KIcon("media-seek-forward"));
connect(m_ruler, SIGNAL(seekRenderer(int)), this, SLOT(slotSeek(int)));
- connect(ui.button_play, SIGNAL(clicked()), this, SLOT(slotOpen()));
connect(ui.button_rew, SIGNAL(clicked()), this, SLOT(slotRewind()));
- connect(ui.button_play_2, SIGNAL(clicked()), this, SLOT(slotPlay()));
+ connect(ui.button_rew1, SIGNAL(clicked()), this, SLOT(slotRewindOneFrame()));
+ connect(ui.button_fwd, SIGNAL(clicked()), this, SLOT(slotForward()));
+ connect(ui.button_fwd1, SIGNAL(clicked()), this, SLOT(slotForwardOneFrame()));
+ connect(ui.button_play, SIGNAL(clicked()), this, SLOT(slotPlay()));
}
// virtual
// virtual
void Monitor::wheelEvent ( QWheelEvent * event )
{
- render->play(0);
- if (event->delta() > 0) m_position++;
- else m_position--;
- render->seekToFrame(m_position);
+ if (event->delta() > 0) slotForwardOneFrame();
+ else slotRewindOneFrame();
}
void Monitor::slotSeek(int pos)
if ( render == NULL ) return;
int realPos = ((double) pos) / m_scale;
render->seekToFrame(realPos);
-
+ m_position = realPos;
+ ui.monitor_time->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
+}
+
+void Monitor::slotRewind()
+{
+ double speed = render->playSpeed();
+ if ( speed >= 0 ) render->play(-2);
+ else render->play(speed * 2);
+ ui.button_play->setChecked(true);
+ ui.button_play->setIcon(m_pauseIcon);
+}
+
+void Monitor::slotForward()
+{
+ double speed = render->playSpeed();
+ if ( speed <= 1 ) render->play(2);
+ else render->play(speed * 2);
+ ui.button_play->setChecked(true);
+ ui.button_play->setIcon(m_pauseIcon);
+}
+
+void Monitor::slotRewindOneFrame()
+{
+ render->play(0);
+ m_position--;
+ render->seekToFrame(m_position);
+ ui.monitor_time->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
+}
+
+void Monitor::slotForwardOneFrame()
+{
+ render->play(0);
+ m_position++;
+ render->seekToFrame(m_position);
+ ui.monitor_time->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
}
void Monitor::seekCursor(int pos)
{
int rulerPos = (int) (pos * m_scale);
m_position = pos;
+ ui.monitor_time->setText(m_monitorManager->timecode().getTimecodeFromFrames(pos));
//kDebug()<<"seek: "<<pos<<", scale: "<<m_scale<<
m_ruler->slotNewValue(rulerPos);
}
{
int rulerPos = (int) (pos * m_scale);
m_ruler->slotNewValue(rulerPos);
- ui.button_play_2->setChecked(false);
+ ui.button_play->setChecked(false);
+ ui.button_play->setIcon(m_playIcon);
}
void Monitor::initMonitor()
render->mltInsertClip(2, GenTime(0, 25), QString("<westley><producer mlt_service=\"avformat\" resource=\"/home/one/.vids/clip3e.mpg\" in=\"1\" out=\"300\" /></westley>"));
}
-void Monitor::slotRewind()
-{
- if ( render == NULL ) return;
- m_monitorManager->activateMonitor(m_name);
- render->seek(GenTime(0));
-}
-
void Monitor::slotPlay()
{
if ( render == NULL ) return;
m_monitorManager->activateMonitor(m_name);
render->switchPlay();
- ui.button_play_2->setChecked(true);
+ ui.button_play->setChecked(true);
+ ui.button_play->setIcon(m_pauseIcon);
}
void Monitor::slotSetXml(const QDomElement &e)
westley.appendChild(e);
render->setSceneList(doc, 0);
m_ruler->slotNewValue(0);
+ ui.monitor_time->setText("00:00:00:00");
m_position = 0;
}
<rect>
<x>0</x>
<y>0</y>
- <width>365</width>
- <height>249</height>
+ <width>320</width>
+ <height>238</height>
</rect>
</property>
<property name="windowTitle" >
<string>Form</string>
</property>
<layout class="QGridLayout" >
+ <property name="verticalSpacing" >
+ <number>0</number>
+ </property>
<item row="0" column="0" colspan="2" >
<widget class="QFrame" name="video_frame" >
<property name="frameShape" >
<number>0</number>
</property>
<item>
- <widget class="KPushButton" name="button_play" >
+ <widget class="KPushButton" name="button_rew" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<horstretch>0</horstretch>
</widget>
</item>
<item>
- <widget class="KPushButton" name="button_rew" >
+ <widget class="KPushButton" name="button_rew1" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<horstretch>0</horstretch>
</widget>
</item>
<item>
- <widget class="KPushButton" name="button_play_2" >
+ <widget class="KPushButton" name="button_play" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<horstretch>0</horstretch>
<property name="checked" >
<bool>false</bool>
</property>
- <property name="flat" >
- <bool>true</bool>
- </property>
</widget>
</item>
<item>
- <widget class="KPushButton" name="kpushbutton_18" >
+ <widget class="KPushButton" name="button_fwd1" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<horstretch>0</horstretch>
</widget>
</item>
<item>
- <widget class="KPushButton" name="kpushbutton_19" >
+ <widget class="KPushButton" name="button_fwd" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<horstretch>0</horstretch>
</layout>
</item>
<item row="3" column="1" >
- <widget class="KRestrictedLine" name="krestrictedline" >
+ <widget class="KRestrictedLine" name="monitor_time" >
<property name="inputMask" >
<string>99:99:99:99; </string>
</property>