2018-07-04 Carl Hetherington <cth@carlh.net>
+ * Label audio content with its DCP channel mapping in the timeline (#1279).
+
* Add scrolling and zoom to the timeline (#1279, #1320).
2018-07-01 Carl Hetherington <cth@carlh.net>
/*
- Copyright (C) 2013-2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2018 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
#include "timeline_audio_content_view.h"
+#include "wx_util.h"
+#include "lib/audio_content.h"
+#include "lib/util.h"
+using std::list;
using boost::shared_ptr;
+using boost::dynamic_pointer_cast;
/** @class TimelineAudioContentView
* @brief Timeline view for AudioContent.
{
return wxColour (0, 0, 0, 255);
}
+
+wxString
+TimelineAudioContentView::label () const
+{
+ wxString s = TimelineContentView::label ();
+ shared_ptr<AudioContent> ac = content()->audio;
+ DCPOMATIC_ASSERT (ac);
+ list<int> mapped = ac->mapping().mapped_output_channels();
+ if (!mapped.empty ()) {
+ s += " → ";
+ BOOST_FOREACH (int i, mapped) {
+ s += std_to_wx(short_audio_channel_name(i)) + ", ";
+ }
+ s = s.Left(s.Length() - 2);
+ }
+ return s;
+}
}
wxColour background_colour () const;
wxColour foreground_colour () const;
+ wxString label () const;
};
}
/* Label text */
- wxString name = std_to_wx (cont->summary());
- wxDouble name_width;
- wxDouble name_height;
- wxDouble name_descent;
- wxDouble name_leading;
+ wxString lab = label ();
+ wxDouble lab_width;
+ wxDouble lab_height;
+ wxDouble lab_descent;
+ wxDouble lab_leading;
gc->SetFont (gc->CreateFont (*wxNORMAL_FONT, foreground_colour ()));
- gc->GetTextExtent (name, &name_width, &name_height, &name_descent, &name_leading);
+ gc->GetTextExtent (lab, &lab_width, &lab_height, &lab_descent, &lab_leading);
gc->Clip (wxRegion (time_x (position), y_pos (_track.get()), len.seconds() * _timeline.pixels_per_second().get_value_or(0), _timeline.pixels_per_track()));
- gc->DrawText (name, time_x (position) + 12, y_pos (_track.get() + 1) - name_height - 4);
+ gc->DrawText (lab, time_x (position) + 12, y_pos (_track.get() + 1) - lab_height - 4);
gc->ResetClip ();
}
force_redraw ();
}
}
+
+wxString
+TimelineContentView::label () const
+{
+ return std_to_wx(content()->summary());
+}
virtual bool active () const = 0;
virtual wxColour background_colour () const = 0;
virtual wxColour foreground_colour () const = 0;
+ virtual wxString label () const;
protected: