add a new global window for reviewing and (soon) downloading loop libraries
This commit is contained in:
parent
10ac1901dd
commit
5461bfb218
@ -656,6 +656,7 @@
|
|||||||
<menuitem action='toggle-big-clock'/>
|
<menuitem action='toggle-big-clock'/>
|
||||||
<menuitem action='toggle-big-transport'/>
|
<menuitem action='toggle-big-transport'/>
|
||||||
<menuitem action='toggle-virtual-keyboard'/>
|
<menuitem action='toggle-virtual-keyboard'/>
|
||||||
|
<menuitem action='toggle-library-manager'/>
|
||||||
|
|
||||||
<separator/><!-- Video Monitor !-->
|
<separator/><!-- Video Monitor !-->
|
||||||
<menuitem action='ToggleJadeo'/>
|
<menuitem action='ToggleJadeo'/>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
#include "io_plugin_window.h"
|
#include "io_plugin_window.h"
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
#include "keyeditor.h"
|
#include "keyeditor.h"
|
||||||
|
#include "library_download_dialog.h"
|
||||||
#include "location_ui.h"
|
#include "location_ui.h"
|
||||||
#include "lua_script_manager.h"
|
#include "lua_script_manager.h"
|
||||||
#include "luawindow.h"
|
#include "luawindow.h"
|
||||||
@ -324,6 +325,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
|
|||||||
, big_clock_window (X_("big-clock"), _("Big Clock"), boost::bind (&ARDOUR_UI::create_big_clock_window, this))
|
, big_clock_window (X_("big-clock"), _("Big Clock"), boost::bind (&ARDOUR_UI::create_big_clock_window, this))
|
||||||
, big_transport_window (X_("big-transport"), _("Transport Controls"), boost::bind (&ARDOUR_UI::create_big_transport_window, this))
|
, big_transport_window (X_("big-transport"), _("Transport Controls"), boost::bind (&ARDOUR_UI::create_big_transport_window, this))
|
||||||
, virtual_keyboard_window (X_("virtual-keyboard"), _("Virtual Keyboard"), boost::bind (&ARDOUR_UI::create_virtual_keyboard_window, this))
|
, virtual_keyboard_window (X_("virtual-keyboard"), _("Virtual Keyboard"), boost::bind (&ARDOUR_UI::create_virtual_keyboard_window, this))
|
||||||
|
, library_manager_window (X_("library-manager"), _("Library Manager"), boost::bind (&ARDOUR_UI::create_library_manager_window, this))
|
||||||
, audio_port_matrix (X_("audio-connection-manager"), _("Audio Connections"), boost::bind (&ARDOUR_UI::create_global_port_matrix, this, ARDOUR::DataType::AUDIO))
|
, audio_port_matrix (X_("audio-connection-manager"), _("Audio Connections"), boost::bind (&ARDOUR_UI::create_global_port_matrix, this, ARDOUR::DataType::AUDIO))
|
||||||
, midi_port_matrix (X_("midi-connection-manager"), _("MIDI Connections"), boost::bind (&ARDOUR_UI::create_global_port_matrix, this, ARDOUR::DataType::MIDI))
|
, midi_port_matrix (X_("midi-connection-manager"), _("MIDI Connections"), boost::bind (&ARDOUR_UI::create_global_port_matrix, this, ARDOUR::DataType::MIDI))
|
||||||
, key_editor (X_("key-editor"), _("Keyboard Shortcuts"), boost::bind (&ARDOUR_UI::create_key_editor, this))
|
, key_editor (X_("key-editor"), _("Keyboard Shortcuts"), boost::bind (&ARDOUR_UI::create_key_editor, this))
|
||||||
@ -525,6 +527,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
|
|||||||
WM::Manager::instance().register_window (&big_clock_window);
|
WM::Manager::instance().register_window (&big_clock_window);
|
||||||
WM::Manager::instance().register_window (&big_transport_window);
|
WM::Manager::instance().register_window (&big_transport_window);
|
||||||
WM::Manager::instance().register_window (&virtual_keyboard_window);
|
WM::Manager::instance().register_window (&virtual_keyboard_window);
|
||||||
|
WM::Manager::instance().register_window (&library_manager_window);
|
||||||
WM::Manager::instance().register_window (&audio_port_matrix);
|
WM::Manager::instance().register_window (&audio_port_matrix);
|
||||||
WM::Manager::instance().register_window (&midi_port_matrix);
|
WM::Manager::instance().register_window (&midi_port_matrix);
|
||||||
WM::Manager::instance().register_window (&luawindow);
|
WM::Manager::instance().register_window (&luawindow);
|
||||||
@ -551,6 +554,12 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
|
|||||||
ARDOUR::Port::set_connecting_blocked (ARDOUR_COMMAND_LINE::no_connect_ports);
|
ARDOUR::Port::set_connecting_blocked (ARDOUR_COMMAND_LINE::no_connect_ports);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ARDOUR_UI::library_show_status (LibraryDescription ld)
|
||||||
|
{
|
||||||
|
std::cerr << "Library " << ld.name() << " installed ? " << ld.installed() << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
GlobalPortMatrixWindow*
|
GlobalPortMatrixWindow*
|
||||||
ARDOUR_UI::create_global_port_matrix (ARDOUR::DataType type)
|
ARDOUR_UI::create_global_port_matrix (ARDOUR::DataType type)
|
||||||
{
|
{
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
#include <list>
|
#include <list>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
|
#include <boost/utility.hpp>
|
||||||
|
|
||||||
#include "pbd/xml++.h"
|
#include "pbd/xml++.h"
|
||||||
#include <gtkmm/box.h>
|
#include <gtkmm/box.h>
|
||||||
@ -73,6 +74,7 @@
|
|||||||
#include "gtkmm2ext/visibility_tracker.h"
|
#include "gtkmm2ext/visibility_tracker.h"
|
||||||
|
|
||||||
#include "ardour/ardour.h"
|
#include "ardour/ardour.h"
|
||||||
|
#include "ardour/library.h"
|
||||||
#include "ardour/types.h"
|
#include "ardour/types.h"
|
||||||
#include "ardour/utils.h"
|
#include "ardour/utils.h"
|
||||||
#include "ardour/plugin.h"
|
#include "ardour/plugin.h"
|
||||||
@ -123,6 +125,7 @@
|
|||||||
#include "speaker_dialog.h"
|
#include "speaker_dialog.h"
|
||||||
#include "transport_masters_dialog.h"
|
#include "transport_masters_dialog.h"
|
||||||
#include "virtual_keyboard_window.h"
|
#include "virtual_keyboard_window.h"
|
||||||
|
#include "library_download_dialog.h"
|
||||||
#else
|
#else
|
||||||
class About;
|
class About;
|
||||||
class AddRouteDialog;
|
class AddRouteDialog;
|
||||||
@ -148,6 +151,7 @@ class PluginManagerUI;
|
|||||||
class DspStatisticsWindow;
|
class DspStatisticsWindow;
|
||||||
class TransportMastersWindow;
|
class TransportMastersWindow;
|
||||||
class VirtualKeyboardWindow;
|
class VirtualKeyboardWindow;
|
||||||
|
class LibraryDownloadDialog;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class VideoTimeLine;
|
class VideoTimeLine;
|
||||||
@ -415,6 +419,8 @@ protected:
|
|||||||
void toggle_rc_options_window ();
|
void toggle_rc_options_window ();
|
||||||
void toggle_session_options_window ();
|
void toggle_session_options_window ();
|
||||||
|
|
||||||
|
void library_show_status (ARDOUR::LibraryDescription ld);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
Gtk::Window _main_window;
|
Gtk::Window _main_window;
|
||||||
@ -758,6 +764,7 @@ private:
|
|||||||
WM::ProxyWithConstructor<BigClockWindow> big_clock_window;
|
WM::ProxyWithConstructor<BigClockWindow> big_clock_window;
|
||||||
WM::ProxyWithConstructor<BigTransportWindow> big_transport_window;
|
WM::ProxyWithConstructor<BigTransportWindow> big_transport_window;
|
||||||
WM::ProxyWithConstructor<VirtualKeyboardWindow> virtual_keyboard_window;
|
WM::ProxyWithConstructor<VirtualKeyboardWindow> virtual_keyboard_window;
|
||||||
|
WM::ProxyWithConstructor<LibraryDownloadDialog> library_manager_window;
|
||||||
WM::ProxyWithConstructor<GlobalPortMatrixWindow> audio_port_matrix;
|
WM::ProxyWithConstructor<GlobalPortMatrixWindow> audio_port_matrix;
|
||||||
WM::ProxyWithConstructor<GlobalPortMatrixWindow> midi_port_matrix;
|
WM::ProxyWithConstructor<GlobalPortMatrixWindow> midi_port_matrix;
|
||||||
WM::ProxyWithConstructor<KeyEditor> key_editor;
|
WM::ProxyWithConstructor<KeyEditor> key_editor;
|
||||||
@ -771,6 +778,7 @@ private:
|
|||||||
BigClockWindow* create_big_clock_window();
|
BigClockWindow* create_big_clock_window();
|
||||||
BigTransportWindow* create_big_transport_window();
|
BigTransportWindow* create_big_transport_window();
|
||||||
VirtualKeyboardWindow* create_virtual_keyboard_window();
|
VirtualKeyboardWindow* create_virtual_keyboard_window();
|
||||||
|
LibraryDownloadDialog* create_library_manager_window();
|
||||||
GlobalPortMatrixWindow* create_global_port_matrix (ARDOUR::DataType);
|
GlobalPortMatrixWindow* create_global_port_matrix (ARDOUR::DataType);
|
||||||
KeyEditor* create_key_editor ();
|
KeyEditor* create_key_editor ();
|
||||||
LuaWindow* create_luawindow ();
|
LuaWindow* create_luawindow ();
|
||||||
|
@ -60,6 +60,7 @@
|
|||||||
#include "gui_object.h"
|
#include "gui_object.h"
|
||||||
#include "gui_thread.h"
|
#include "gui_thread.h"
|
||||||
#include "keyeditor.h"
|
#include "keyeditor.h"
|
||||||
|
#include "library_download_dialog.h"
|
||||||
#include "location_ui.h"
|
#include "location_ui.h"
|
||||||
#include "lua_script_manager.h"
|
#include "lua_script_manager.h"
|
||||||
#include "luawindow.h"
|
#include "luawindow.h"
|
||||||
@ -1005,6 +1006,13 @@ ARDOUR_UI::create_virtual_keyboard_window ()
|
|||||||
return vkbd;
|
return vkbd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LibraryDownloadDialog*
|
||||||
|
ARDOUR_UI::create_library_manager_window ()
|
||||||
|
{
|
||||||
|
LibraryDownloadDialog* ldd = new LibraryDownloadDialog ();
|
||||||
|
return ldd;
|
||||||
|
}
|
||||||
|
|
||||||
LuaWindow*
|
LuaWindow*
|
||||||
ARDOUR_UI::create_luawindow ()
|
ARDOUR_UI::create_luawindow ()
|
||||||
{
|
{
|
||||||
|
65
gtk2_ardour/library_download_dialog.cc
Normal file
65
gtk2_ardour/library_download_dialog.cc
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
#include "pbd/i18n.h"
|
||||||
|
|
||||||
|
#include <glibmm/markup.h>
|
||||||
|
|
||||||
|
#include "ardour/library.h"
|
||||||
|
|
||||||
|
#include "library_download_dialog.h"
|
||||||
|
|
||||||
|
LibraryDownloadDialog::LibraryDownloadDialog ()
|
||||||
|
: ArdourDialog (_("Loop Library Manager"), true) /* modal */
|
||||||
|
{
|
||||||
|
_model = Gtk::ListStore::create (_columns);
|
||||||
|
_display.set_model (_model);
|
||||||
|
|
||||||
|
_display.append_column (_("Name"), _columns.name);
|
||||||
|
_display.append_column (_("Author"), _columns.author);
|
||||||
|
_display.append_column (_("License"), _columns.license);
|
||||||
|
_display.append_column (_("Size"), _columns.size);
|
||||||
|
_display.append_column_editable (_("Installed"), _columns.installed);
|
||||||
|
|
||||||
|
Gtk::CellRendererToggle *toggle = dynamic_cast<Gtk::CellRendererToggle *> (_display.get_column_cell_renderer (4));
|
||||||
|
toggle->set_alignment (0.0, 0.5);
|
||||||
|
toggle->signal_toggled().connect (sigc::mem_fun (*this, &LibraryDownloadDialog::install_activated));
|
||||||
|
|
||||||
|
_display.set_headers_visible (true);
|
||||||
|
_display.set_tooltip_column (5); /* path */
|
||||||
|
|
||||||
|
Gtk::HBox* h = new Gtk::HBox;
|
||||||
|
h->set_spacing (8);
|
||||||
|
h->set_border_width (8);
|
||||||
|
h->pack_start (_display);
|
||||||
|
|
||||||
|
get_vbox()->set_spacing (8);
|
||||||
|
get_vbox()->pack_start (*Gtk::manage (h));
|
||||||
|
|
||||||
|
|
||||||
|
ARDOUR::LibraryFetcher lf;
|
||||||
|
lf.get_descriptions ();
|
||||||
|
lf.foreach_description (boost::bind (&LibraryDownloadDialog::add_library, this, _1));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LibraryDownloadDialog::add_library (ARDOUR::LibraryDescription const & ld)
|
||||||
|
{
|
||||||
|
|
||||||
|
Gtk::TreeModel::iterator i = _model->append();
|
||||||
|
(*i)[_columns.name] = ld.name();
|
||||||
|
(*i)[_columns.author] = ld.author();
|
||||||
|
(*i)[_columns.license] = ld.license();
|
||||||
|
(*i)[_columns.size] = ld.size();
|
||||||
|
(*i)[_columns.installed] = ld.installed();
|
||||||
|
|
||||||
|
/* tooltip must be escape for pango markup, and we should strip all
|
||||||
|
* duplicate spaces
|
||||||
|
*/
|
||||||
|
|
||||||
|
(*i)[_columns.description] = Glib::Markup::escape_text (ld.description());
|
||||||
|
std::cerr << "set descr to " << ld.description() << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
LibraryDownloadDialog::install_activated (std::string str)
|
||||||
|
{
|
||||||
|
}
|
70
gtk2_ardour/library_download_dialog.h
Normal file
70
gtk2_ardour/library_download_dialog.h
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
#ifndef __gtk2_ardour_library_download_dialog_h__
|
||||||
|
#define __gtk2_ardour_library_download_dialog_h__
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include <gtkmm/entry.h>
|
||||||
|
#include <gtkmm/liststore.h>
|
||||||
|
#include <gtkmm/treeview.h>
|
||||||
|
|
||||||
|
#include "ardour_dialog.h"
|
||||||
|
|
||||||
|
namespace ARDOUR {
|
||||||
|
class LibraryDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
class LibraryDownloadDialog : public ArdourDialog
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LibraryDownloadDialog ();
|
||||||
|
|
||||||
|
void add_library (ARDOUR::LibraryDescription const &);
|
||||||
|
|
||||||
|
private:
|
||||||
|
class LibraryColumns : public Gtk::TreeModelColumnRecord {
|
||||||
|
public:
|
||||||
|
LibraryColumns() {
|
||||||
|
add (name);
|
||||||
|
add (author);
|
||||||
|
add (license);
|
||||||
|
add (size);
|
||||||
|
add (installed);
|
||||||
|
add (description);
|
||||||
|
}
|
||||||
|
|
||||||
|
Gtk::TreeModelColumn<std::string> name;
|
||||||
|
Gtk::TreeModelColumn<std::string> author;
|
||||||
|
Gtk::TreeModelColumn<std::string> license;
|
||||||
|
Gtk::TreeModelColumn<std::string> size;
|
||||||
|
Gtk::TreeModelColumn<std::string> description;
|
||||||
|
Gtk::TreeModelColumn<bool> installed;
|
||||||
|
};
|
||||||
|
|
||||||
|
Gtk::TreeView _display;
|
||||||
|
Glib::RefPtr<Gtk::ListStore> _model;
|
||||||
|
LibraryColumns _columns;
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
Gtk::TreeViewColumn* append_col (Gtk::TreeModelColumn<T> const& col, int width = 0)
|
||||||
|
{
|
||||||
|
Gtk::TreeViewColumn* c = manage (new Gtk::TreeViewColumn ("", col));
|
||||||
|
if (width) {
|
||||||
|
c->set_fixed_width (width);
|
||||||
|
c->set_sizing (Gtk::TREE_VIEW_COLUMN_FIXED);
|
||||||
|
}
|
||||||
|
_display.append_column (*c);
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool tv_query_tooltip (int x, int y, bool kbd, const Glib::RefPtr<Gtk::Tooltip>& tooltip);
|
||||||
|
|
||||||
|
|
||||||
|
void setup_col (Gtk::TreeViewColumn*, int, Gtk::AlignmentEnum, const char*, const char*);
|
||||||
|
void setup_toggle (Gtk::TreeViewColumn*, sigc::slot<void, std::string>);
|
||||||
|
|
||||||
|
void install_activated (std::string str);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __gtk2_ardour_library_download_dialog_h__ */
|
@ -150,6 +150,7 @@ gtk2_ardour_sources = [
|
|||||||
'latency_gui.cc',
|
'latency_gui.cc',
|
||||||
'led.cc',
|
'led.cc',
|
||||||
'level_meter.cc',
|
'level_meter.cc',
|
||||||
|
'library_download_dialog.cc',
|
||||||
'location_ui.cc',
|
'location_ui.cc',
|
||||||
'loudness_dialog.cc',
|
'loudness_dialog.cc',
|
||||||
'loudness_settings.cc',
|
'loudness_settings.cc',
|
||||||
|
Loading…
Reference in New Issue
Block a user