What used to be the pink recording rectangle is now blended into the recording regions so that they appear to be the same thing. Then recording specific colors are added so the waveform and region base when recording are all various shades of red during recording. *** Open Theme Manager and click Restore Defaults for these changes to apply ***

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3259 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Doug McLain 2008-04-17 09:33:54 +00:00
parent 803b502bf1
commit 6962547e8d
13 changed files with 93 additions and 49 deletions

View File

@ -64,8 +64,6 @@
<Option name="RangeDragBarRect" value="969696c6"/>
<Option name="RangeDragRect" value="82c696c6"/>
<Option name="rangemarker bar" value="7f7f8cff"/>
<Option name="RecordingRect" value="e5c6c6ff"/>
<Option name="region base" value="99a7b584"/>
<Option name="RubberBandRect" value="c6c6c659"/>
<Option name="selected crossfade editor line" value="00dbdbff"/>
<Option name="selected crossfade editor wave" value="f9ea14a0"/>
@ -87,8 +85,12 @@
<Option name="TrimHandle" value="1900ff44"/>
<Option name="verbose canvas cursor" value="f4f214bc"/>
<Option name="VestigialFrame" value="00000092"/>
<Option name="region base" value="99a7b584"/>
<Option name="waveform fill" value="3d475378"/>
<Option name="waveform outline" value="0f0f0fcc"/>
<Option name="recorded region base" value="ad7173ff"/>
<Option name="recorded waveform fill" value="74383884"/>
<Option name="recorded waveform outline" value="3b0013ff"/>
<Option name="ZeroLine" value="bdbdbd8d"/>
<Option name="ZoomRect" value="c6d1b26d"/>
</Canvas>

View File

@ -77,9 +77,10 @@ AudioRegionView::AudioRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView
{
}
AudioRegionView::AudioRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv, boost::shared_ptr<AudioRegion> r, double spu,
Gdk::Color& basic_color, TimeAxisViewItem::Visibility visibility)
: RegionView (parent, tv, r, spu, basic_color, visibility)
Gdk::Color& basic_color, bool recording, TimeAxisViewItem::Visibility visibility)
: RegionView (parent, tv, r, spu, basic_color, recording, visibility)
, sync_mark(0)
, zero_line(0)
, fade_in_shape(0)
@ -265,7 +266,7 @@ void
AudioRegionView::region_changed (Change what_changed)
{
ENSURE_GUI_THREAD (bind (mem_fun(*this, &AudioRegionView::region_changed), what_changed));
cerr << "AudioRegionView::region_changed() called" << endl;
RegionView::region_changed(what_changed);
if (what_changed & AudioRegion::ScaleAmplitudeChanged) {
@ -861,8 +862,15 @@ AudioRegionView::create_one_wave (uint32_t which, bool direct)
wave->property_height() = (double) ht;
wave->property_samples_per_unit() = samples_per_unit;
wave->property_amplitude_above_axis() = _amplitude_above_axis;
wave->property_wave_color() = _region->muted() ? UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA) : ARDOUR_UI::config()->canvasvar_WaveForm.get();
wave->property_fill_color() = ARDOUR_UI::config()->canvasvar_WaveFormFill.get();
if (_recregion) {
wave->property_wave_color() = _region->muted() ? UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_RecWaveForm.get(), MUTED_ALPHA) : ARDOUR_UI::config()->canvasvar_RecWaveForm.get();
wave->property_fill_color() = ARDOUR_UI::config()->canvasvar_RecWaveFormFill.get();
} else {
wave->property_wave_color() = _region->muted() ? UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA) : ARDOUR_UI::config()->canvasvar_WaveForm.get();
wave->property_fill_color() = ARDOUR_UI::config()->canvasvar_WaveFormFill.get();
}
wave->property_clip_color() = ARDOUR_UI::config()->canvasvar_WaveFormClip.get();
wave->property_zero_color() = ARDOUR_UI::config()->canvasvar_ZeroLine.get();
wave->property_region_start() = _region->start();
@ -1227,16 +1235,32 @@ AudioRegionView::set_frame_color ()
}
}
} else {
UINT_TO_RGBA(ARDOUR_UI::config()->canvasvar_FrameBase.get(), &r, &g, &b, &a);
frame->property_fill_color_rgba() = RGBA_TO_UINT(r, g, b, fill_opacity ? fill_opacity : a);
if (_recregion) {
UINT_TO_RGBA(ARDOUR_UI::config()->canvasvar_RecordingRect.get(), &r, &g, &b, &a);
frame->property_fill_color_rgba() = RGBA_TO_UINT(r, g, b, a);
cerr << "Was a recregion" << endl;
for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
if (_region->muted()) {
(*w)->property_wave_color() = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA);
} else {
(*w)->property_wave_color() = ARDOUR_UI::config()->canvasvar_WaveForm.get();
(*w)->property_fill_color() = ARDOUR_UI::config()->canvasvar_WaveFormFill.get();
for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
if (_region->muted()) {
(*w)->property_wave_color() = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_RecWaveForm.get(), MUTED_ALPHA);
} else {
(*w)->property_wave_color() = ARDOUR_UI::config()->canvasvar_RecWaveForm.get();
(*w)->property_fill_color() = ARDOUR_UI::config()->canvasvar_RecWaveFormFill.get();
}
}
} else {
UINT_TO_RGBA(ARDOUR_UI::config()->canvasvar_FrameBase.get(), &r, &g, &b, &a);
frame->property_fill_color_rgba() = RGBA_TO_UINT(r, g, b, fill_opacity ? fill_opacity : a);
for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
if (_region->muted()) {
(*w)->property_wave_color() = UINT_RGBA_CHANGE_A(ARDOUR_UI::config()->canvasvar_WaveForm.get(), MUTED_ALPHA);
} else {
(*w)->property_wave_color() = ARDOUR_UI::config()->canvasvar_WaveForm.get();
(*w)->property_fill_color() = ARDOUR_UI::config()->canvasvar_WaveFormFill.get();
}
}
}
}
}

View File

@ -54,6 +54,14 @@ class AudioRegionView : public RegionView
double initial_samples_per_unit,
Gdk::Color& basic_color);
AudioRegionView (ArdourCanvas::Group *,
RouteTimeAxisView&,
boost::shared_ptr<ARDOUR::AudioRegion>,
double samples_per_unit,
Gdk::Color& basic_color,
bool recording,
TimeAxisViewItem::Visibility);
AudioRegionView (const AudioRegionView& other);
AudioRegionView (const AudioRegionView& other, boost::shared_ptr<ARDOUR::AudioRegion>);
@ -108,13 +116,6 @@ class AudioRegionView : public RegionView
to the TimeAxisViewItem parent class
*/
AudioRegionView (ArdourCanvas::Group *,
RouteTimeAxisView&,
boost::shared_ptr<ARDOUR::AudioRegion>,
double samples_per_unit,
Gdk::Color& basic_color,
TimeAxisViewItem::Visibility);
enum Flags {
EnvelopeVisible = 0x1,
WaveformVisible = 0x4,

View File

@ -129,7 +129,7 @@ AudioStreamView::set_amplitude_above_axis (gdouble app)
}
void
AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait_for_waves)
AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait_for_waves, bool recording)
{
AudioRegionView *region_view = 0;
@ -161,8 +161,13 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
switch (_trackview.audio_track()->mode()) {
case Normal:
region_view = new AudioRegionView (canvas_group, _trackview, region,
if (recording) {
region_view = new AudioRegionView (canvas_group, _trackview, region,
_samples_per_unit, region_color, recording, TimeAxisViewItem::Visibility(TimeAxisViewItem::ShowFrame | TimeAxisViewItem::HideFrameRight));
} else {
region_view = new AudioRegionView (canvas_group, _trackview, region,
_samples_per_unit, region_color);
}
break;
case Destructive:
region_view = new TapeAudioRegionView (canvas_group, _trackview, region,
@ -178,7 +183,6 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
region_view->set_amplitude_above_axis(_amplitude_above_axis);
region_views.push_front (region_view);
/* if its the special single-sample length that we use for rec-regions, make it
insensitive to events
*/
@ -542,7 +546,8 @@ AudioStreamView::setup_rec_box ()
rec_rect->property_y1() = 1.0;
rec_rect->property_x2() = xend;
rec_rect->property_y2() = (double) _trackview.height - 1;
rec_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
rec_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
rec_rect->property_outline_what() = 0x4 | 0x8; // Draw top and bottom outline to blend with region
rec_rect->property_fill_color_rgba() = fill_color;
RecBoxInfo recbox;
@ -689,7 +694,7 @@ AudioStreamView::update_rec_regions ()
if (origlen == 1) {
/* our special initial length */
add_region_view_internal (region, false);
add_region_view_internal (region, false, true);
}
/* also update rect */
@ -714,7 +719,7 @@ AudioStreamView::update_rec_regions ()
if (origlen == 1) {
/* our special initial length */
add_region_view_internal (region, false);
add_region_view_internal (region, false, true);
}
/* also hide rect */

View File

@ -83,7 +83,7 @@ class AudioStreamView : public StreamView
void rec_peak_range_ready (nframes_t start, nframes_t cnt, boost::weak_ptr<ARDOUR::Source> src);
void update_rec_regions ();
void add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves);
void add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves, bool recording = false);
void remove_region_view (boost::weak_ptr<ARDOUR::Region> );
void remove_audio_region_view (boost::shared_ptr<ARDOUR::AudioRegion> );

View File

@ -23,7 +23,6 @@ CANVAS_VARIABLE(canvasvar_EnteredControlPointOutline, "entered control point out
CANVAS_VARIABLE(canvasvar_EnteredControlPointSelected, "entered control point selected")
CANVAS_VARIABLE(canvasvar_EnteredGainLine, "EnteredGainLine")
CANVAS_VARIABLE(canvasvar_EnteredMarker, "EnteredMarker")
CANVAS_VARIABLE(canvasvar_FrameBase, "region base")
CANVAS_VARIABLE(canvasvar_FrameHandle, "FrameHandle")
CANVAS_VARIABLE(canvasvar_GainLine, "GainLine")
CANVAS_VARIABLE(canvasvar_GainLineInactive, "GainLineInactive")
@ -60,7 +59,6 @@ CANVAS_VARIABLE(canvasvar_PunchLine, "PunchLine")
CANVAS_VARIABLE(canvasvar_RangeDragBarRect, "RangeDragBarRect")
CANVAS_VARIABLE(canvasvar_RangeDragRect, "RangeDragRect")
CANVAS_VARIABLE(canvasvar_RangeMarkerBar, "rangemarker bar")
CANVAS_VARIABLE(canvasvar_RecordingRect, "RecordingRect")
CANVAS_VARIABLE(canvasvar_RedirectAutomationLine, "processor automation line")
CANVAS_VARIABLE(canvasvar_RubberBandRect, "RubberBandRect")
CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorLine, "selected crossfade editor line")
@ -83,8 +81,12 @@ CANVAS_VARIABLE(canvasvar_TrimHandleLocked, "TrimHandleLocked")
CANVAS_VARIABLE(canvasvar_TrimHandle, "TrimHandle")
CANVAS_VARIABLE(canvasvar_VerboseCanvasCursor, "verbose canvas cursor")
CANVAS_VARIABLE(canvasvar_VestigialFrame, "VestigialFrame")
CANVAS_VARIABLE(canvasvar_WaveFormClip, "clipped waveform")
CANVAS_VARIABLE(canvasvar_FrameBase, "region base")
CANVAS_VARIABLE(canvasvar_WaveFormFill, "waveform fill")
CANVAS_VARIABLE(canvasvar_WaveForm, "waveform outline")
CANVAS_VARIABLE(canvasvar_RecordingRect, "recorded region base")
CANVAS_VARIABLE(canvasvar_RecWaveFormFill, "recorded waveform fill")
CANVAS_VARIABLE(canvasvar_RecWaveForm, "recorded waveform outline")
CANVAS_VARIABLE(canvasvar_WaveFormClip, "clipped waveform")
CANVAS_VARIABLE(canvasvar_ZeroLine, "ZeroLine")
CANVAS_VARIABLE(canvasvar_ZoomRect, "ZoomRect")

View File

@ -52,7 +52,7 @@ CrossfadeView::CrossfadeView (ArdourCanvas::Group *parent,
: TimeAxisViewItem ("xfade" /*xf.name()*/, *parent, tv, spu, basic_color, xf->position(),
xf->length(), TimeAxisViewItem::Visibility (TimeAxisViewItem::ShowFrame)),
xf->length(), false, TimeAxisViewItem::Visibility (TimeAxisViewItem::ShowFrame)),
crossfade (xf),
left_view (lview),
right_view (rview)

View File

@ -62,8 +62,9 @@ RegionView::RegionView (ArdourCanvas::Group* parent,
TimeAxisView& tv,
boost::shared_ptr<ARDOUR::Region> r,
double spu,
Gdk::Color& basic_color)
: TimeAxisViewItem (r->name(), *parent, tv, spu, basic_color, r->position(), r->length(),
Gdk::Color& basic_color
)
: TimeAxisViewItem (r->name(), *parent, tv, spu, basic_color, r->position(), r->length(), false,
TimeAxisViewItem::Visibility (TimeAxisViewItem::ShowNameText|
TimeAxisViewItem::ShowNameHighlight|
TimeAxisViewItem::ShowFrame))
@ -115,8 +116,9 @@ RegionView::RegionView (ArdourCanvas::Group* parent,
boost::shared_ptr<ARDOUR::Region> r,
double spu,
Gdk::Color& basic_color,
bool recording,
TimeAxisViewItem::Visibility visibility)
: TimeAxisViewItem (r->name(), *parent, tv, spu, basic_color, r->position(), r->length(), visibility)
: TimeAxisViewItem (r->name(), *parent, tv, spu, basic_color, r->position(), r->length(), recording, visibility)
, _region (r)
, sync_mark(0)
, sync_line(0)
@ -142,7 +144,10 @@ RegionView::init (Gdk::Color& basic_color, bool wfd)
compute_colors (basic_color);
name_highlight->set_data ("regionview", this);
if (name_highlight) {
name_highlight->set_data ("regionview", this);
name_highlight->signal_event().connect (bind (mem_fun (PublicEditor::instance(), &PublicEditor::canvas_region_view_name_highlight_event), name_highlight, this));
}
if (name_text) {
name_text->set_data ("regionview", this);
@ -155,12 +160,10 @@ RegionView::init (Gdk::Color& basic_color, bool wfd)
_region->StateChanged.connect (mem_fun(*this, &RegionView::region_changed));
group->signal_event().connect (bind (mem_fun (PublicEditor::instance(), &PublicEditor::canvas_region_view_event), group, this));
name_highlight->signal_event().connect (bind (mem_fun (PublicEditor::instance(), &PublicEditor::canvas_region_view_name_highlight_event), name_highlight, this));
set_colors ();
ColorsChanged.connect (mem_fun (*this, &RegionView::color_handler));
// set_pango_fontsize();
/* XXX sync mark drag? */
}

View File

@ -100,6 +100,7 @@ class RegionView : public TimeAxisViewItem
boost::shared_ptr<ARDOUR::Region>,
double samples_per_unit,
Gdk::Color& basic_color,
bool recording,
TimeAxisViewItem::Visibility);
virtual void region_resized (ARDOUR::Change);

View File

@ -107,7 +107,7 @@ protected:
void update_rec_box ();
virtual void update_rec_regions () = 0;
virtual void add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves) = 0;
virtual void add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves, bool recording = false) = 0;
virtual void remove_region_view (boost::weak_ptr<ARDOUR::Region> );
//void remove_rec_region (boost::shared_ptr<ARDOUR::Region>); (unused)

View File

@ -53,7 +53,7 @@ TapeAudioRegionView::TapeAudioRegionView (ArdourCanvas::Group *parent, RouteTime
double spu,
Gdk::Color& basic_color)
: AudioRegionView (parent, tv, r, spu, basic_color,
: AudioRegionView (parent, tv, r, spu, basic_color, false,
TimeAxisViewItem::Visibility ((r->position() != 0) ? default_tape_visibility :
TimeAxisViewItem::Visibility (default_tape_visibility|TimeAxisViewItem::HideFrameLeft)))
{

View File

@ -69,9 +69,9 @@ double TimeAxisViewItem::NAME_HIGHLIGHT_THRESH;
* @param duration the duration of this item
*/
TimeAxisViewItem::TimeAxisViewItem(const string & it_name, ArdourCanvas::Group& parent, TimeAxisView& tv, double spu, Gdk::Color& base_color,
nframes_t start, nframes_t duration,
nframes_t start, nframes_t duration, bool recording,
Visibility vis)
: trackview (tv)
: trackview (tv), _recregion(recording)
{
if (!have_name_font) {
@ -798,8 +798,13 @@ TimeAxisViewItem::set_frame_color()
UINT_TO_RGBA(ARDOUR_UI::config()->canvasvar_SelectedFrameBase.get(), &r, &g, &b, &a);
frame->property_fill_color_rgba() = RGBA_TO_UINT(r, g, b, fill_opacity ? fill_opacity : a);// Lets still use the theme's opacity value if Opaque is not set
} else {
UINT_TO_RGBA(ARDOUR_UI::config()->canvasvar_FrameBase.get(), &r, &g, &b, &a);
frame->property_fill_color_rgba() = RGBA_TO_UINT(r, g, b, fill_opacity ? fill_opacity : a);
if (_recregion) {
UINT_TO_RGBA(ARDOUR_UI::config()->canvasvar_RecordingRect.get(), &r, &g, &b, &a);
frame->property_fill_color_rgba() = RGBA_TO_UINT(r, g, b, a);
} else {
UINT_TO_RGBA(ARDOUR_UI::config()->canvasvar_FrameBase.get(), &r, &g, &b, &a);
frame->property_fill_color_rgba() = RGBA_TO_UINT(r, g, b, fill_opacity ? fill_opacity : a);
}
}
}
}
@ -1043,3 +1048,4 @@ TimeAxisViewItem::idle_remove_this_item(TimeAxisViewItem* item, void* src)
item = 0;
return false;
}

View File

@ -316,8 +316,6 @@ class TimeAxisViewItem : public Selectable
/** Emitted when the mionimum item duration is changed */
sigc::signal<void,nframes_t,void*> MinDurationChanged ;
protected:
enum Visibility {
ShowFrame = 0x1,
ShowNameHighlight = 0x2,
@ -328,7 +326,7 @@ class TimeAxisViewItem : public Selectable
HideFrameTB = 0x40,
FullWidthNameHighlight = 0x80
};
protected:
/**
* Constructs a new TimeAxisViewItem.
*
@ -341,7 +339,7 @@ class TimeAxisViewItem : public Selectable
* @param duration the duration of this item
*/
TimeAxisViewItem(const std::string & it_name, ArdourCanvas::Group& parent, TimeAxisView& tv, double spu, Gdk::Color& base_color,
nframes_t start, nframes_t duration, Visibility v = Visibility (0));
nframes_t start, nframes_t duration, bool recording = false, Visibility v = Visibility (0));
TimeAxisViewItem (const TimeAxisViewItem& other);
@ -466,6 +464,8 @@ class TimeAxisViewItem : public Selectable
std::map<Glib::ustring::size_type,int> name_text_size_cache;
Visibility visibility;
bool _recregion;
}; /* class TimeAxisViewItem */