/*
- Copyright (C) 2001, 2006 Paul Davis
+ Copyright (C) 2001, 2006 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <map>
#include <cmath>
-#include <ardour/location.h>
-#include "enums.h"
-#include "simplerect.h"
-#include "color.h"
+#include <boost/weak_ptr.hpp>
+
+#include "ardour/location.h"
+#include "editing.h"
#include "streamview.h"
namespace Gdk {
}
namespace ARDOUR {
- class Route;
- class Diskstream;
- class Crossfade;
- class PeakData;
class AudioRegion;
+ class Route;
class Source;
+ struct PeakData;
}
class PublicEditor;
class AudioTimeAxisView;
class AudioRegionView;
class RegionSelection;
-class CrossfadeView;
class Selection;
class AudioStreamView : public StreamView
{
public:
AudioStreamView (AudioTimeAxisView&);
- ~AudioStreamView ();
-
- void set_waveform_shape (WaveformShape);
-
- int set_height (gdouble h);
- int set_samples_per_unit (gdouble spp);
int set_amplitude_above_axis (gdouble app);
gdouble get_amplitude_above_axis () { return _amplitude_above_axis; }
- void set_show_waveforms (bool yn);
- void set_show_waveforms_recording (bool yn) { use_rec_regions = yn; }
+ void show_all_fades ();
+ void hide_all_fades ();
- void foreach_crossfadeview (void (CrossfadeView::*pmf)(void));
+ std::pair<std::list<AudioRegionView*>, std::list<AudioRegionView*> > hide_xfades_with (boost::shared_ptr<ARDOUR::AudioRegion> ar);
- void show_all_xfades ();
- void hide_all_xfades ();
- void hide_xfades_involving (AudioRegionView&);
- void reveal_xfades_involving (AudioRegionView&);
+ RegionView* create_region_view (boost::shared_ptr<ARDOUR::Region>, bool, bool);
private:
void setup_rec_box ();
- void rec_peak_range_ready (jack_nframes_t start, jack_nframes_t cnt, ARDOUR::Source* src);
- void update_rec_regions ();
-
- void add_region_view_internal (ARDOUR::Region*, bool wait_for_waves);
- void remove_region_view (ARDOUR::Region* );
- void remove_audio_region_view (ARDOUR::AudioRegion* );
- void remove_audio_rec_region (ARDOUR::AudioRegion*);
+ void rec_peak_range_ready (framepos_t start, ARDOUR::framecnt_t cnt, boost::weak_ptr<ARDOUR::Source> src);
+ void update_rec_regions (ARDOUR::framepos_t, ARDOUR::framecnt_t);
- void undisplay_diskstream ();
- void redisplay_diskstream ();
- void playlist_modified ();
- void playlist_changed (ARDOUR::Diskstream *ds);
+ RegionView* add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves, bool recording = false);
+ void remove_audio_region_view (boost::shared_ptr<ARDOUR::AudioRegion> );
- void add_crossfade (ARDOUR::Crossfade*);
- void remove_crossfade (ARDOUR::Crossfade*);
+ void redisplay_track ();
- void color_handler (ColorID id, uint32_t val);
-
+ void color_handler ();
double _amplitude_above_axis;
-
- typedef list<CrossfadeView*> CrossfadeViewList;
- CrossfadeViewList crossfade_views;
- bool crossfades_visible;
-
- list<sigc::connection> peak_ready_connections;
- jack_nframes_t last_rec_peak_frame;
- map<ARDOUR::Source*, bool> rec_peak_ready_map;
-
+
+ std::map<boost::shared_ptr<ARDOUR::Source>, bool> rec_data_ready_map;
+
+ bool outline_region;
};
#endif /* __ardour_audio_streamview_h__ */