projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
#include trimming.
[dcpomatic.git]
/
src
/
wx
/
timing_panel.cc
diff --git
a/src/wx/timing_panel.cc
b/src/wx/timing_panel.cc
index b8b923a6b941752c80962fc6088430d4b715a12f..021ab6ab08405ecd646286937cd948ac82096d97 100644
(file)
--- a/
src/wx/timing_panel.cc
+++ b/
src/wx/timing_panel.cc
@@
-17,21
+17,23
@@
*/
*/
+#include <dcp/raw_convert.h>
#include "lib/content.h"
#include "lib/image_content.h"
#include "timing_panel.h"
#include "wx_util.h"
#include "timecode.h"
#include "lib/content.h"
#include "lib/image_content.h"
#include "timing_panel.h"
#include "wx_util.h"
#include "timecode.h"
-#include "
film_editor
.h"
+#include "
content_panel
.h"
using std::cout;
using std::string;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using std::cout;
using std::string;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
-using
boost::lexical_cas
t;
+using
dcp::raw_conver
t;
-TimingPanel::TimingPanel (FilmEditor* e)
- : FilmEditorPanel (e, _("Timing"))
+TimingPanel::TimingPanel (ContentPanel* p)
+ /* horrid hack for apparent lack of context support with wxWidgets i18n code */
+ : ContentSubPanel (p, S_("Timing|Timing"))
{
wxFlexGridSizer* grid = new wxFlexGridSizer (2, 4, 4);
_sizer->Add (grid, 0, wxALL, 8);
{
wxFlexGridSizer* grid = new wxFlexGridSizer (2, 4, 4);
_sizer->Add (grid, 0, wxALL, 8);
@@
-75,38
+77,44
@@
TimingPanel::TimingPanel (FilmEditor* e)
void
TimingPanel::film_content_changed (int property)
{
void
TimingPanel::film_content_changed (int property)
{
- ContentList cl = _
editor->selected_content
();
+ ContentList cl = _
parent->selected
();
shared_ptr<Content> content;
if (cl.size() == 1) {
content = cl.front ();
}
shared_ptr<Content> content;
if (cl.size() == 1) {
content = cl.front ();
}
+
+ int const film_video_frame_rate = _parent->film()->video_frame_rate ();
if (property == ContentProperty::POSITION) {
if (content) {
if (property == ContentProperty::POSITION) {
if (content) {
- _position->set (content->position (),
_editor->film()->video_frame_rate ()
);
+ _position->set (content->position (),
film_video_frame_rate
);
} else {
_position->set (DCPTime () , 24);
}
} else {
_position->set (DCPTime () , 24);
}
- } else if (property == ContentProperty::LENGTH || property == VideoContentProperty::VIDEO_FRAME_RATE) {
+ } else if (
+ property == ContentProperty::LENGTH ||
+ property == VideoContentProperty::VIDEO_FRAME_RATE ||
+ property == VideoContentProperty::VIDEO_FRAME_TYPE
+ ) {
if (content) {
if (content) {
- _full_length->set (content->full_length (),
_editor->film()->video_frame_rate ()
);
- _play_length->set (content->length_after_trim (),
_editor->film()->video_frame_rate ()
);
+ _full_length->set (content->full_length (),
film_video_frame_rate
);
+ _play_length->set (content->length_after_trim (),
film_video_frame_rate
);
} else {
_full_length->set (DCPTime (), 24);
_play_length->set (DCPTime (), 24);
}
} else if (property == ContentProperty::TRIM_START) {
if (content) {
} else {
_full_length->set (DCPTime (), 24);
_play_length->set (DCPTime (), 24);
}
} else if (property == ContentProperty::TRIM_START) {
if (content) {
- _trim_start->set (content->trim_start (),
_editor->film()->video_frame_rate ()
);
- _play_length->set (content->length_after_trim (),
_editor->film()->video_frame_rate ()
);
+ _trim_start->set (content->trim_start (),
film_video_frame_rate
);
+ _play_length->set (content->length_after_trim (),
film_video_frame_rate
);
} else {
_trim_start->set (DCPTime (), 24);
_play_length->set (DCPTime (), 24);
}
} else if (property == ContentProperty::TRIM_END) {
if (content) {
} else {
_trim_start->set (DCPTime (), 24);
_play_length->set (DCPTime (), 24);
}
} else if (property == ContentProperty::TRIM_END) {
if (content) {
- _trim_end->set (content->trim_end (),
_editor->film()->video_frame_rate ()
);
- _play_length->set (content->length_after_trim (),
_editor->film()->video_frame_rate ()
);
+ _trim_end->set (content->trim_end (),
film_video_frame_rate
);
+ _play_length->set (content->length_after_trim (),
film_video_frame_rate
);
} else {
_trim_end->set (DCPTime (), 24);
_play_length->set (DCPTime (), 24);
} else {
_trim_end->set (DCPTime (), 24);
_play_length->set (DCPTime (), 24);
@@
-117,7
+125,7
@@
TimingPanel::film_content_changed (int property)
if (content) {
shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (content);
if (vc) {
if (content) {
shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (content);
if (vc) {
- _video_frame_rate->SetValue (std_to_wx (
lexical_cast<string> (vc->video_frame_rate ()
)));
+ _video_frame_rate->SetValue (std_to_wx (
raw_convert<string> (vc->video_frame_rate (), 5
)));
} else {
_video_frame_rate->SetValue ("24");
}
} else {
_video_frame_rate->SetValue ("24");
}
@@
-126,31
+134,32
@@
TimingPanel::film_content_changed (int property)
}
}
}
}
+ shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (content);
shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (content);
_full_length->set_editable (ic && ic->still ());
_play_length->set_editable (!ic || !ic->still ());
shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (content);
_full_length->set_editable (ic && ic->still ());
_play_length->set_editable (!ic || !ic->still ());
- _video_frame_rate->Enable (
ic && !ic->still ()
);
+ _video_frame_rate->Enable (
vc
);
_set_video_frame_rate->Enable (false);
}
void
TimingPanel::position_changed ()
{
_set_video_frame_rate->Enable (false);
}
void
TimingPanel::position_changed ()
{
- ContentList c = _
editor->selected_content
();
+ ContentList c = _
parent->selected
();
if (c.size() == 1) {
if (c.size() == 1) {
- c.front()->set_position (_position->get (_
editor
->film()->video_frame_rate ()));
+ c.front()->set_position (_position->get (_
parent
->film()->video_frame_rate ()));
}
}
void
TimingPanel::full_length_changed ()
{
}
}
void
TimingPanel::full_length_changed ()
{
- ContentList c = _
editor->selected_content
();
+ ContentList c = _
parent->selected
();
if (c.size() == 1) {
shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (c.front ());
if (ic && ic->still ()) {
/* XXX: No effective FRC here... is this right? */
if (c.size() == 1) {
shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (c.front ());
if (ic && ic->still ()) {
/* XXX: No effective FRC here... is this right? */
- ic->set_video_length (ContentTime (_full_length->get (_
editor
->film()->video_frame_rate()), FrameRateChange (1, 1)));
+ ic->set_video_length (ContentTime (_full_length->get (_
parent
->film()->video_frame_rate()), FrameRateChange (1, 1)));
}
}
}
}
}
}
@@
-158,9
+167,9
@@
TimingPanel::full_length_changed ()
void
TimingPanel::trim_start_changed ()
{
void
TimingPanel::trim_start_changed ()
{
- ContentList c = _
editor->selected_content
();
+ ContentList c = _
parent->selected
();
if (c.size() == 1) {
if (c.size() == 1) {
- c.front()->set_trim_start (_trim_start->get (_
editor
->film()->video_frame_rate ()));
+ c.front()->set_trim_start (_trim_start->get (_
parent
->film()->video_frame_rate ()));
}
}
}
}
@@
-168,18
+177,18
@@
TimingPanel::trim_start_changed ()
void
TimingPanel::trim_end_changed ()
{
void
TimingPanel::trim_end_changed ()
{
- ContentList c = _
editor->selected_content
();
+ ContentList c = _
parent->selected
();
if (c.size() == 1) {
if (c.size() == 1) {
- c.front()->set_trim_end (_trim_end->get (_
editor
->film()->video_frame_rate ()));
+ c.front()->set_trim_end (_trim_end->get (_
parent
->film()->video_frame_rate ()));
}
}
void
TimingPanel::play_length_changed ()
{
}
}
void
TimingPanel::play_length_changed ()
{
- ContentList c = _
editor->selected_content
();
+ ContentList c = _
parent->selected
();
if (c.size() == 1) {
if (c.size() == 1) {
- c.front()->set_trim_end (c.front()->full_length() - _play_length->get (_
editor
->film()->video_frame_rate()) - c.front()->trim_start());
+ c.front()->set_trim_end (c.front()->full_length() - _play_length->get (_
parent
->film()->video_frame_rate()) - c.front()->trim_start());
}
}
}
}
@@
-192,20
+201,20
@@
TimingPanel::video_frame_rate_changed ()
void
TimingPanel::set_video_frame_rate ()
{
void
TimingPanel::set_video_frame_rate ()
{
- ContentList c = _
editor->selected_content
();
+ ContentList c = _
parent->selected
();
if (c.size() == 1) {
if (c.size() == 1) {
- shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (c.front ());
- if (ic) {
- ic->set_video_frame_rate (lexical_cast<float> (wx_to_std (_video_frame_rate->GetValue ())));
- _set_video_frame_rate->Enable (false);
+ shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (c.front ());
+ if (vc) {
+ vc->set_video_frame_rate (raw_convert<float> (wx_to_std (_video_frame_rate->GetValue ())));
}
}
+ _set_video_frame_rate->Enable (false);
}
}
void
TimingPanel::content_selection_changed ()
{
}
}
void
TimingPanel::content_selection_changed ()
{
- ContentList sel = _
editor->selected_content
();
+ ContentList sel = _
parent->selected
();
bool const single = sel.size() == 1;
/* Things that are only allowed with single selections */
bool const single = sel.size() == 1;
/* Things that are only allowed with single selections */