#include "ardour/audioengine.h"
#include "ardour/filesystem_paths.h"
+#include "ardour/filename_extensions.h"
+#include "ardour/plugin_manager.h"
#include "ardour/recent_sessions.h"
#include "ardour/session.h"
#include "ardour/session_state_utils.h"
#include "ardour/template_utils.h"
-#include "ardour/filename_extensions.h"
#include "ardour_ui.h"
#include "startup.h"
set_default_icon_list (window_icons);
}
-#ifdef __APPLE__
- setup_prerelease_page ();
-#endif
-
setup_new_user_page ();
setup_first_time_config_page ();
setup_monitoring_choice_page ();
bool
ArdourStartup::required ()
{
- return !Glib::file_test (been_here_before_path(), Glib::FILE_TEST_EXISTS);
-}
-
-std::string
-ArdourStartup::been_here_before_path ()
-{
- return Glib::build_filename (user_config_directory (), ".a" PROGRAM_VERSION);
-}
-
-void
-ArdourStartup::setup_prerelease_page ()
-{
- VBox* vbox = manage (new VBox);
- Label* label = manage (new Label);
- label->set_markup (string_compose (_("<b>Welcome to this BETA release of Ardour %1</b>\n\n\
-Ardour %1 has been released for Linux but because of the lack of testers,\n\
-it is still at the beta stage on OS X. So, a few guidelines:\n\
-\n\
-1) Please do <b>NOT</b> use this software with the expectation that it is stable or reliable\n\
- though it may be so, depending on your workflow.\n\
-2) <b>Please do NOT use the forums at ardour.org to report issues</b>.\n\
-3) Please <b>DO</b> use the bugtracker at http://tracker.ardour.org/ to report issues\n\
- making sure to note the product version number as %1-beta.\n\
-4) Please <b>DO</b> use the ardour-users mailing list to discuss ideas and pass on comments.\n\
-5) Please <b>DO</b> join us on IRC for real time discussions about ardour3. You\n\
- can get there directly from Ardour via the Help->Chat menu option.\n\
-\n\
-Full information on all the above can be found on the support page at\n\
-\n\
- http://ardour.org/support\n\
-"), VERSIONSTRING));
+ /* look for a "been here before" file for this version or earlier
+ * versions
+ */
- vbox->set_border_width (12);
- vbox->pack_start (*label, false, false, 12);
- vbox->show_all ();
+ const int current_version = atoi (PROGRAM_VERSION);
- append_page (*vbox);
- set_page_type (*vbox, ASSISTANT_PAGE_CONTENT);
- set_page_title (*vbox, _("This is a BETA RELEASE"));
- set_page_complete (*vbox, true);
+ for (int v = current_version; v != 0; --v) {
+ if (Glib::file_test (ARDOUR::been_here_before_path (v), Glib::FILE_TEST_EXISTS)) {
+ if (v != current_version) {
+ /* older version exists, create the current one */
+ ofstream fout (been_here_before_path (current_version).c_str());
+ }
+ return false;
+ }
+ }
+
+ return true;
}
void
ArdourStartup::setup_final_page ()
{
string msg = string_compose (_("%1 is ready for use"), PROGRAM_NAME);
-
- final_page.set_markup (string_compose ("<span weight=\"bold\" size=\"large\">%1</span>", msg));
- final_page.show ();
- final_page_index = append_page (final_page);
- set_page_complete (final_page, true);
- set_page_header_image (final_page, icon_pixbuf);
- set_page_type (final_page, ASSISTANT_PAGE_CONFIRM);
+
+ plugin_disco_button.signal_clicked().connect (sigc::mem_fun(*this, &ArdourStartup::discover_plugins));
+ plugin_disco_button.set_label (_("Scan for Plugins"));
+ plugin_disco_button.show ();
+
+ Gtk::Label* final_label = manage (new Label);
+ final_label->set_markup (string_compose ("<span weight=\"bold\" size=\"large\">%1</span>", msg));
+ final_label->show ();
+
+ VBox* vbox = manage (new VBox);
+ vbox->pack_start (*final_label, true, true);
+ vbox->pack_start (plugin_disco_button, true, false);
+ vbox->show ();
+
+ final_page_index = append_page (*vbox);
+ set_page_complete (*vbox, true);
+ set_page_header_image (*vbox, icon_pixbuf);
+ set_page_type (*vbox, ASSISTANT_PAGE_CONFIRM);
+}
+
+void
+ArdourStartup::discover_plugins () {
+ plugin_disco_button.set_sensitive (false);
+ PluginManager::instance().refresh();
}
void