Removed unused MeterBridgeStrip and MeterBridge classes.
Removed unnecessary AudioEngine references. git-svn-id: svn://localhost/ardour2/trunk@1583 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
3f4232c646
commit
7e0e458f74
|
@ -65,7 +65,6 @@
|
|||
class AudioClock;
|
||||
class PublicEditor;
|
||||
class Keyboard;
|
||||
class MeterBridge;
|
||||
class OptionEditor;
|
||||
class Mixer_UI;
|
||||
class ConnectionEditor;
|
||||
|
|
|
@ -338,7 +338,7 @@ int
|
|||
ARDOUR_UI::create_route_params ()
|
||||
{
|
||||
if (route_params == 0) {
|
||||
route_params = new RouteParams_UI (*engine);
|
||||
route_params = new RouteParams_UI ();
|
||||
route_params->set_session (session);
|
||||
route_params->signal_unmap().connect (sigc::bind(sigc::ptr_fun(&ActionManager::uncheck_toggleaction), X_("<Actions>/Common/ToggleInspector")));
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ ARDOUR_UI::create_editor ()
|
|||
|
||||
{
|
||||
try {
|
||||
editor = new Editor (*engine);
|
||||
editor = new Editor ();
|
||||
}
|
||||
|
||||
catch (failed_constructor& err) {
|
||||
|
|
|
@ -34,7 +34,7 @@ ARDOUR_UI::create_mixer ()
|
|||
|
||||
{
|
||||
try {
|
||||
mixer = new Mixer_UI (*engine);
|
||||
mixer = new Mixer_UI ();
|
||||
}
|
||||
|
||||
catch (failed_constructor& err) {
|
||||
|
@ -43,3 +43,4 @@ ARDOUR_UI::create_mixer ()
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -169,9 +169,8 @@ check_adjustment (Gtk::Adjustment* adj)
|
|||
|
||||
}
|
||||
|
||||
Editor::Editor (AudioEngine& eng)
|
||||
: engine (eng),
|
||||
|
||||
Editor::Editor ()
|
||||
:
|
||||
/* time display buttons */
|
||||
|
||||
minsec_label (_("Mins:Secs")),
|
||||
|
|
|
@ -60,10 +60,6 @@ namespace Gtkmm2ext {
|
|||
class TearOff;
|
||||
}
|
||||
|
||||
namespace LinuxAudioSystems {
|
||||
class AudioEngine;
|
||||
}
|
||||
|
||||
namespace ARDOUR {
|
||||
class AudioDiskstream;
|
||||
class RouteGroup;
|
||||
|
@ -121,7 +117,7 @@ class TimeAxisViewItem ;
|
|||
class Editor : public PublicEditor
|
||||
{
|
||||
public:
|
||||
Editor (ARDOUR::AudioEngine&);
|
||||
Editor ();
|
||||
~Editor ();
|
||||
|
||||
void connect_to_session (ARDOUR::Session *);
|
||||
|
@ -350,7 +346,6 @@ class Editor : public PublicEditor
|
|||
private:
|
||||
|
||||
ARDOUR::Session *session;
|
||||
ARDOUR::AudioEngine& engine;
|
||||
bool constructed;
|
||||
|
||||
PlaylistSelector* _playlist_selector;
|
||||
|
|
|
@ -163,7 +163,7 @@ bool currentInitialized = 0;
|
|||
void
|
||||
Editor::update_current_screen ()
|
||||
{
|
||||
if (session && engine.running()) {
|
||||
if (session && session->engine().running()) {
|
||||
|
||||
nframes_t frame;
|
||||
|
||||
|
|
|
@ -1,259 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2002 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
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <ardour/session.h>
|
||||
#include <ardour/session_route.h>
|
||||
#include <ardour/audio_diskstream.h>
|
||||
#include <ardour/audio_track.h>
|
||||
|
||||
#include "ardour_ui.h"
|
||||
#include "meter_bridge.h"
|
||||
#include "meter_bridge_strip.h"
|
||||
#include "utils.h"
|
||||
#include "gui_thread.h"
|
||||
|
||||
#include "i18n.h"
|
||||
|
||||
using namespace ARDOUR;
|
||||
using namespace PBD;
|
||||
using namespace Gtk;
|
||||
using namespace sigc;
|
||||
|
||||
#define FRAME_SHADOW_STYLE Gtk::SHADOW_IN
|
||||
#define FRAME_NAME "BaseFrame"
|
||||
|
||||
MeterBridge::MeterBridge ()
|
||||
: ArdourDialog ("meter bridge"),
|
||||
hadjustment (0.0, 0.0, 0.0),
|
||||
vadjustment (0.0, 0.0, 0.0),
|
||||
meter_viewport (hadjustment, vadjustment)
|
||||
{
|
||||
meter_base.set_name ("MeterBase");
|
||||
meter_frame.set_shadow_type (FRAME_SHADOW_STYLE);
|
||||
meter_frame.set_name (FRAME_NAME);
|
||||
meter_frame.add (meter_base);
|
||||
|
||||
upper_metering_box.set_name ("AboveMeterZone");
|
||||
lower_metering_box.set_name ("BelowMeterZone");
|
||||
|
||||
metering_vbox.set_spacing (5);
|
||||
metering_vbox.set_border_width (10);
|
||||
metering_vbox.pack_start (upper_metering_box, false, false);
|
||||
metering_vbox.pack_start (meter_frame, false, false);
|
||||
metering_vbox.pack_start (lower_metering_box, false, false);
|
||||
|
||||
metering_hbox.pack_start (metering_vbox, false, false);
|
||||
|
||||
meter_scroll_base.set_name ("MeterScrollBase");
|
||||
meter_scroll_base.add (metering_hbox);
|
||||
|
||||
meter_viewport.add (meter_scroll_base);
|
||||
meter_viewport.set_shadow_type (Gtk::SHADOW_NONE);
|
||||
|
||||
meter_scroller.add (meter_viewport);
|
||||
meter_scroller.set_name ("MeterBridgeWindow");
|
||||
meter_scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
||||
meter_scroller.set_border_width (5);
|
||||
|
||||
add (meter_scroller);
|
||||
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
|
||||
set_name ("MeterBridgeWindow");
|
||||
set_title (_("ardour: meter bridge"));
|
||||
set_wmclass (X_("ardour_meter_bridge"), "Ardour");
|
||||
// set_policy (false, false, false); // no user resizing of any kind
|
||||
|
||||
signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), static_cast<Gtk::Window*>(this)));
|
||||
|
||||
metering = false;
|
||||
|
||||
/* don't show: this window doesn't come up by default */
|
||||
}
|
||||
|
||||
MeterBridge::~MeterBridge ()
|
||||
{
|
||||
stop_metering ();
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::set_session (Session *s)
|
||||
{
|
||||
ArdourDialog::set_session (s);
|
||||
|
||||
if (session) {
|
||||
// XXX this stuff has to be fixed if we ever use this code again
|
||||
// (refs vs. ptrs)
|
||||
// session->foreach_route (this, &MeterBridge::add_route);
|
||||
session->RouteAdded.connect (mem_fun(*this, &MeterBridge::add_route));
|
||||
session->GoingAway.connect (mem_fun(*this, &MeterBridge::session_gone));
|
||||
start_metering ();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::session_gone ()
|
||||
{
|
||||
ENSURE_GUI_THREAD(mem_fun(*this, &MeterBridge::session_gone));
|
||||
|
||||
stop_metering ();
|
||||
hide_all ();
|
||||
|
||||
list<MeterBridgeStrip *>::iterator i;
|
||||
|
||||
for (i = meters.begin(); i != meters.end(); ++i) {
|
||||
|
||||
upper_metering_box.remove ((*i)->above_box());
|
||||
meter_base.remove ((*i)->meter_widget());
|
||||
lower_metering_box.remove ((*i)->below_box());
|
||||
|
||||
// delete (*i);
|
||||
}
|
||||
|
||||
meters.clear ();
|
||||
|
||||
ArdourDialog::session_gone();
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::add_route (ARDOUR::Route* route)
|
||||
{
|
||||
ENSURE_GUI_THREAD(bind (mem_fun(*this, &MeterBridge::add_route), route));
|
||||
|
||||
uint32_t n;
|
||||
char buf[32];
|
||||
|
||||
if (!session || route->hidden() || dynamic_cast<AudioTrack*>(route) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
n = meters.size();
|
||||
snprintf (buf, sizeof (buf), "%u", n+1);
|
||||
|
||||
MeterBridgeStrip *meter = new MeterBridgeStrip (session->engine(),
|
||||
*session,
|
||||
*route,
|
||||
buf,
|
||||
session->over_length_long,
|
||||
session->over_length_short,
|
||||
200);
|
||||
|
||||
#define packing_factor 30
|
||||
|
||||
upper_metering_box.put (meter->above_box(), n * packing_factor, 0);
|
||||
|
||||
meter_base.put (meter->meter_widget(), (n * packing_factor) + (meter->meter_width()/2), 0);
|
||||
lower_metering_box.put (meter->below_box(), n * packing_factor, 0);
|
||||
|
||||
meter->above_box().show_all ();
|
||||
meter->meter_widget().show ();
|
||||
meter->below_box().show_all ();
|
||||
|
||||
route->GoingAway.connect (bind (mem_fun(*this, &MeterBridge::remove_route), route));
|
||||
meters.insert (meters.begin(), meter);
|
||||
|
||||
set_default_size (30 + ((n+1) * packing_factor), 315);
|
||||
|
||||
meter->set_meter_on(true);
|
||||
|
||||
session->GoingAway.connect (mem_fun(*this, &MeterBridge::session_gone));
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::remove_route (Route* route)
|
||||
{
|
||||
ENSURE_GUI_THREAD(bind (mem_fun(*this, &MeterBridge::remove_route), route));
|
||||
list<MeterBridgeStrip *>::iterator i;
|
||||
|
||||
for (i = meters.begin(); i != meters.end(); ++i) {
|
||||
if (&((*i)->route()) == route) {
|
||||
delete *i;
|
||||
meters.erase (i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::clear_all_meters ()
|
||||
{
|
||||
list<MeterBridgeStrip *>::iterator i;
|
||||
|
||||
for (i = meters.begin(); i != meters.end(); ++i) {
|
||||
(*i)->clear_meter ();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::update ()
|
||||
{
|
||||
list<MeterBridgeStrip *>::iterator i;
|
||||
|
||||
for (i = meters.begin(); i != meters.end(); ++i) {
|
||||
(*i)->update ();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::start_metering ()
|
||||
{
|
||||
list<MeterBridgeStrip *>::iterator i;
|
||||
|
||||
for (i = meters.begin(); i != meters.end(); ++i) {
|
||||
(*i)->set_meter_on (true);
|
||||
}
|
||||
metering_connection = ARDOUR_UI::instance()->RapidScreenUpdate.connect
|
||||
(mem_fun(*this, &MeterBridge::update));
|
||||
metering = true;
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::stop_metering ()
|
||||
{
|
||||
list<MeterBridgeStrip *>::iterator i;
|
||||
|
||||
for (i = meters.begin(); i != meters.end(); ++i) {
|
||||
(*i)->set_meter_on (false);
|
||||
}
|
||||
metering_connection.disconnect();
|
||||
metering = false;
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::toggle_metering ()
|
||||
{
|
||||
if (!metering) {
|
||||
start_metering ();
|
||||
} else {
|
||||
stop_metering ();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::on_map ()
|
||||
{
|
||||
start_metering ();
|
||||
return Window::on_map ();
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridge::on_unmap ()
|
||||
{
|
||||
stop_metering ();
|
||||
return Window::on_unmap ();
|
||||
}
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 1999-2002 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
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_meter_bridge_h__
|
||||
#define __ardour_meter_bridge_h__
|
||||
|
||||
#include <list>
|
||||
|
||||
#include <gtkmm/eventbox.h>
|
||||
#include <gtkmm/viewport.h>
|
||||
#include <gtkmm/scrolledwindow.h>
|
||||
#include <gtkmm/box.h>
|
||||
#include <gtkmm/fixed.h>
|
||||
#include <gtkmm/frame.h>
|
||||
|
||||
#include "ardour_dialog.h"
|
||||
|
||||
class MeterBridgeStrip;
|
||||
|
||||
namespace ARDOUR {
|
||||
class Session;
|
||||
class Route;
|
||||
}
|
||||
|
||||
class MeterBridge : public ArdourDialog
|
||||
{
|
||||
|
||||
public:
|
||||
MeterBridge ();
|
||||
~MeterBridge ();
|
||||
|
||||
void set_session (ARDOUR::Session*);
|
||||
void clear_all_meters ();
|
||||
void start_metering ();
|
||||
void stop_metering ();
|
||||
void toggle_metering ();
|
||||
|
||||
protected:
|
||||
void on_map ();
|
||||
void on_unmap ();
|
||||
|
||||
private:
|
||||
/* diskstream/recorder display */
|
||||
Gtk::Adjustment hadjustment;
|
||||
Gtk::Adjustment vadjustment;
|
||||
Gtk::Viewport meter_viewport;
|
||||
Gtk::ScrolledWindow meter_scroller;
|
||||
Gtk::EventBox meter_scroll_base;
|
||||
Gtk::HBox meter_scroller_hpacker;
|
||||
Gtk::VBox meter_scroller_vpacker;
|
||||
Gtk::VBox metering_vpacker;
|
||||
Gtk::VBox metering_hpacker;
|
||||
|
||||
Gtk::VBox metering_vbox;
|
||||
Gtk::HBox metering_hbox;
|
||||
Gtk::Fixed upper_metering_box;
|
||||
Gtk::Fixed lower_metering_box;
|
||||
Gtk::Fixed meter_base;
|
||||
Gtk::Frame meter_frame;
|
||||
|
||||
list<MeterBridgeStrip*> meters;
|
||||
|
||||
bool metering;
|
||||
sigc::connection metering_connection;
|
||||
|
||||
void update ();
|
||||
|
||||
void add_route (ARDOUR::Route*);
|
||||
void remove_route (ARDOUR::Route*);
|
||||
void session_gone(); /* overrides ArdourDialog::session_gone() */
|
||||
};
|
||||
|
||||
#endif /* __ardour_meter_bridge_h__ (*/
|
|
@ -1,242 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 1999 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
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <cmath>
|
||||
#include <ctime>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <pbd/pathscanner.h>
|
||||
#include <pbd/fastlog.h>
|
||||
#include <gtkmm2ext/utils.h>
|
||||
#include <gtkmm2ext/selector.h>
|
||||
|
||||
#include <ardour/audioengine.h>
|
||||
#include <ardour/route.h>
|
||||
#include <ardour/port.h>
|
||||
#include <ardour/utils.h>
|
||||
|
||||
#include "meter_bridge_strip.h"
|
||||
#include "ardour_ui.h"
|
||||
#include "prompter.h"
|
||||
#include "logmeter.h"
|
||||
|
||||
#include "i18n.h"
|
||||
|
||||
using namespace ARDOUR;
|
||||
using namespace PBD;
|
||||
using namespace Gtk;
|
||||
using namespace Gtkmm2ext;
|
||||
|
||||
MeterBridgeStrip::MeterBridgeStrip (AudioEngine &eng,
|
||||
Session& s,
|
||||
Route& r,
|
||||
string name,
|
||||
nframes_t long_over,
|
||||
nframes_t short_over,
|
||||
nframes_t meter_hold)
|
||||
: engine (eng),
|
||||
session (s),
|
||||
_route (r),
|
||||
meter (meter_hold, 5, FastMeter::Vertical)
|
||||
{
|
||||
char buf[64];
|
||||
|
||||
label.set_text (name);
|
||||
label.set_name ("ChannelMeterLabel");
|
||||
|
||||
label_ebox.set_name ("MeterBridgeWindow");
|
||||
label_ebox.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK);
|
||||
label_ebox.add (label);
|
||||
|
||||
label_ebox.signal_button_release_event().connect (mem_fun(*this, &MeterBridgeStrip::label_button_press_release));
|
||||
ARDOUR_UI::instance()->tooltips().set_tip (label_ebox, _route.name());
|
||||
|
||||
over_long_label.set_text ("0");
|
||||
over_long_label.set_name ("OverMeterLabel");
|
||||
over_long_button.add (over_long_label);
|
||||
over_long_button.set_name ("OverMeter");
|
||||
over_long_frame.add (over_long_button);
|
||||
over_long_frame.set_shadow_type (Gtk::SHADOW_IN);
|
||||
over_long_frame.set_name ("BaseFrame");
|
||||
over_long_hbox.pack_start (over_long_frame, false, false);
|
||||
|
||||
snprintf(buf, sizeof(buf)-1, _("# of %u-sample overs"), long_over);
|
||||
ARDOUR_UI::instance()->tooltips().set_tip (over_long_button, buf);
|
||||
|
||||
set_size_request_to_display_given_text (over_long_button, "88g", 2, 2);
|
||||
|
||||
over_short_label.set_text ("0");
|
||||
over_short_label.set_name ("OverMeterLabel");
|
||||
over_short_button.add (over_short_label);
|
||||
over_short_button.set_name ("OverMeter");
|
||||
over_short_frame.add (over_short_button);
|
||||
over_short_frame.set_shadow_type (Gtk::SHADOW_IN);
|
||||
over_short_frame.set_name ("BaseFrame");
|
||||
over_short_hbox.pack_start (over_short_frame, false, false);
|
||||
|
||||
snprintf(buf, sizeof(buf)-1, _("# of %u-sample overs"), short_over);
|
||||
ARDOUR_UI::instance()->tooltips().set_tip (over_short_button, buf);
|
||||
|
||||
set_size_request_to_display_given_text (over_short_button, "88g", 2, 2);
|
||||
above_meter_vbox.set_spacing (5);
|
||||
below_meter_vbox.set_spacing (5);
|
||||
|
||||
above_meter_vbox.pack_start (over_long_hbox, false, false);
|
||||
above_meter_vbox.pack_start (over_short_hbox, false, false);
|
||||
|
||||
below_meter_vbox.pack_start (label_ebox);
|
||||
|
||||
over_short_button.signal_button_release_event().connect (mem_fun(*this,&MeterBridgeStrip::gui_clear_overs));
|
||||
over_long_button.signal_button_release_event().connect (mem_fun(*this,&MeterBridgeStrip::gui_clear_overs));
|
||||
|
||||
last_over_short = 0;
|
||||
last_over_long = 0;
|
||||
|
||||
meter_clear_pending = false;
|
||||
over_clear_pending = false;
|
||||
|
||||
meter_on = true;
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridgeStrip::update ()
|
||||
{
|
||||
string buf;
|
||||
Port *port;
|
||||
guint32 over_short = 0;
|
||||
guint32 over_long = 0;
|
||||
|
||||
if ((port = _route.input (0)) == 0) {
|
||||
meter.set (0.0);
|
||||
return;
|
||||
} else {
|
||||
over_short = port->short_overs ();
|
||||
over_long = port->long_overs ();
|
||||
}
|
||||
|
||||
if (meter_on) {
|
||||
float power = minus_infinity();
|
||||
|
||||
if ((power = _route.peak_input_power (0)) != minus_infinity()) {
|
||||
meter.set (log_meter (power));
|
||||
|
||||
if (over_short != last_over_short) {
|
||||
buf = string_compose("%1", over_short);
|
||||
over_short_label.set_text (buf);
|
||||
last_over_short = over_short;
|
||||
}
|
||||
|
||||
if (over_long != last_over_long) {
|
||||
buf = string_compose("%1", over_long);
|
||||
over_long_label.set_text (buf);
|
||||
last_over_long = over_long;
|
||||
}
|
||||
|
||||
} else {
|
||||
meter.set (0.0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (meter_clear_pending) {
|
||||
meter_clear_pending = false;
|
||||
meter.clear ();
|
||||
}
|
||||
|
||||
if (over_clear_pending) {
|
||||
over_clear_pending = false;
|
||||
port->reset_overs ();
|
||||
over_long_label.set_text ("0");
|
||||
over_short_label.set_text ("0");
|
||||
last_over_short = 0;
|
||||
last_over_long = 0;
|
||||
}
|
||||
}
|
||||
|
||||
gint
|
||||
MeterBridgeStrip::gui_clear_overs (GdkEventButton *ev)
|
||||
{
|
||||
clear_overs ();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridgeStrip::clear_meter ()
|
||||
|
||||
{
|
||||
meter_clear_pending = true;
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridgeStrip::clear_overs ()
|
||||
|
||||
{
|
||||
over_clear_pending = true;
|
||||
}
|
||||
|
||||
void
|
||||
MeterBridgeStrip::set_meter_on (bool yn)
|
||||
{
|
||||
Port* port;
|
||||
meter_on = yn;
|
||||
|
||||
if (!meter_on) {
|
||||
meter_clear_pending = true;
|
||||
over_clear_pending = true;
|
||||
}
|
||||
|
||||
if (meter.is_visible()) {
|
||||
if ((port = _route.input (0)) != 0) {
|
||||
if (meter_on) {
|
||||
port->enable_metering ();
|
||||
} else {
|
||||
port->disable_metering ();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gint
|
||||
MeterBridgeStrip::label_button_press_release (GdkEventButton *ev)
|
||||
{
|
||||
string name;
|
||||
ArdourPrompter prompter (true);
|
||||
|
||||
prompter.set_prompt (_("New Name for Meter:"));
|
||||
prompter.set_initial_text (label.get_text());
|
||||
prompter.add_button (_("Rename"), Gtk::RESPONSE_ACCEPT);
|
||||
prompter.set_response_sensitive (Gtk::RESPONSE_ACCEPT, false);
|
||||
prompter.show_all();
|
||||
|
||||
switch (prompter.run ()) {
|
||||
case Gtk::RESPONSE_ACCEPT:
|
||||
|
||||
prompter.get_result (name);
|
||||
|
||||
if (name.length()) {
|
||||
label.set_text(name);
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -1,109 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 1999 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
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_meterbridgestrip_h__
|
||||
#define __ardour_meterbridgestrip_h__
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
#include <gtkmm/box.h>
|
||||
#include <gtkmm/widget.h>
|
||||
#include <gtkmm/eventbox.h>
|
||||
#include <gtkmm/label.h>
|
||||
#include <gtkmm/frame.h>
|
||||
|
||||
#include <gtkmm2ext/fastmeter.h>
|
||||
|
||||
namespace ARDOUR {
|
||||
class AudioEngine;
|
||||
class Session;
|
||||
class Route;
|
||||
}
|
||||
|
||||
namespace Gtkmm2ext {
|
||||
class Selector;
|
||||
struct SelectionResult;
|
||||
}
|
||||
|
||||
class MeterBridgeStrip : public sigc::trackable
|
||||
|
||||
{
|
||||
public:
|
||||
MeterBridgeStrip (ARDOUR::AudioEngine &,
|
||||
ARDOUR::Session&,
|
||||
ARDOUR::Route&,
|
||||
string label,
|
||||
nframes_t long_over,
|
||||
nframes_t short_over,
|
||||
nframes_t meter_hold);
|
||||
|
||||
void update (); /* called by meter timeout handler from ARDOUR_UI */
|
||||
|
||||
Gtk::Box &above_box() { return above_meter_vbox; }
|
||||
Gtk::Box &below_box() { return below_meter_vbox; }
|
||||
Gtk::Widget &meter_widget() { return meter; }
|
||||
|
||||
guint32 meter_width() const { return 8; }
|
||||
|
||||
void clear_meter ();
|
||||
void clear_overs ();
|
||||
|
||||
void set_meter_on (bool yn);
|
||||
bool get_meter_on () const { return meter_on; }
|
||||
|
||||
ARDOUR::Route& route() const { return _route; }
|
||||
|
||||
private:
|
||||
ARDOUR::AudioEngine& engine;
|
||||
ARDOUR::Session& session;
|
||||
ARDOUR::Route& _route;
|
||||
|
||||
Gtk::EventBox label_ebox;
|
||||
Gtk::Label label;
|
||||
bool meter_clear_pending;
|
||||
bool over_clear_pending;
|
||||
|
||||
Gtkmm2ext::FastMeter meter;
|
||||
bool meter_on;
|
||||
|
||||
Gtk::VBox above_meter_vbox;
|
||||
Gtk::VBox below_meter_vbox;
|
||||
|
||||
Gtk::HBox over_long_hbox;
|
||||
Gtk::HBox over_long_vbox;
|
||||
Gtk::EventBox over_long_button;
|
||||
Gtk::Frame over_long_frame;
|
||||
Gtk::Label over_long_label;
|
||||
|
||||
Gtk::HBox over_short_hbox;
|
||||
Gtk::HBox over_short_vbox;
|
||||
Gtk::EventBox over_short_button;
|
||||
Gtk::Frame over_short_frame;
|
||||
Gtk::Label over_short_label;
|
||||
|
||||
guint32 last_over_short;
|
||||
guint32 last_over_long;
|
||||
|
||||
gint gui_clear_overs (GdkEventButton *);
|
||||
gint label_button_press_release (GdkEventButton *);
|
||||
};
|
||||
|
||||
#endif /* __ardour_meterbridgestrip_h__ */
|
||||
|
||||
|
|
@ -29,7 +29,6 @@
|
|||
#include <gtkmm2ext/utils.h>
|
||||
#include <gtkmm2ext/stop_signal.h>
|
||||
|
||||
#include <ardour/audioengine.h>
|
||||
#include <ardour/session.h>
|
||||
#include <ardour/audio_track.h>
|
||||
#include <ardour/session_route.h>
|
||||
|
@ -58,9 +57,8 @@ using namespace std;
|
|||
|
||||
using PBD::atoi;
|
||||
|
||||
Mixer_UI::Mixer_UI (AudioEngine& eng)
|
||||
: Window (Gtk::WINDOW_TOPLEVEL),
|
||||
engine (eng)
|
||||
Mixer_UI::Mixer_UI ()
|
||||
: Window (Gtk::WINDOW_TOPLEVEL)
|
||||
{
|
||||
_strip_width = Wide;
|
||||
track_menu = 0;
|
||||
|
|
|
@ -45,7 +45,6 @@ namespace ARDOUR {
|
|||
class RouteGroup;
|
||||
class Session;
|
||||
class AudioDiskstream;
|
||||
class AudioEngine;
|
||||
};
|
||||
|
||||
class MixerStrip;
|
||||
|
@ -54,7 +53,7 @@ class PluginSelector;
|
|||
class Mixer_UI : public Gtk::Window
|
||||
{
|
||||
public:
|
||||
Mixer_UI (ARDOUR::AudioEngine&);
|
||||
Mixer_UI ();
|
||||
~Mixer_UI();
|
||||
|
||||
void connect_to_session (ARDOUR::Session *);
|
||||
|
@ -80,7 +79,6 @@ class Mixer_UI : public Gtk::Window
|
|||
RouteRedirectSelection& selection() { return _selection; }
|
||||
|
||||
private:
|
||||
ARDOUR::AudioEngine& engine;
|
||||
ARDOUR::Session *session;
|
||||
|
||||
bool _visible;
|
||||
|
|
|
@ -55,9 +55,8 @@ using namespace PBD;
|
|||
using namespace Gtk;
|
||||
using namespace sigc;
|
||||
|
||||
RouteParams_UI::RouteParams_UI (AudioEngine& eng)
|
||||
RouteParams_UI::RouteParams_UI ()
|
||||
: ArdourDialog ("track/bus inspector"),
|
||||
engine (eng),
|
||||
track_menu(0)
|
||||
{
|
||||
pre_redirect_box = 0;
|
||||
|
|
|
@ -58,7 +58,7 @@ class PluginSelector;
|
|||
class RouteParams_UI : public ArdourDialog
|
||||
{
|
||||
public:
|
||||
RouteParams_UI (ARDOUR::AudioEngine&);
|
||||
RouteParams_UI ();
|
||||
~RouteParams_UI();
|
||||
|
||||
void set_session (ARDOUR::Session *);
|
||||
|
@ -66,8 +66,6 @@ class RouteParams_UI : public ArdourDialog
|
|||
PluginSelector& plugin_selector() { return *_plugin_selector; }
|
||||
|
||||
private:
|
||||
ARDOUR::AudioEngine& engine;
|
||||
|
||||
Gtk::HBox global_hpacker;
|
||||
Gtk::VBox global_vpacker;
|
||||
Gtk::ScrolledWindow scroller;
|
||||
|
|
Loading…
Reference in New Issue