#include "lib/send_kdm_email_job.h"
#include "lib/server_finder.h"
#include "lib/update.h"
+#include "lib/content_factory.h"
using std::cout;
using std::string;
static std::string log_level;
static std::string film_to_load;
static std::string film_to_create;
+static std::string content_to_add;
static wxMenu* jobs_menu = 0;
static void set_menu_sensitivity ();
+// #define DCPOMATIC_WINDOWS_CONSOLE 1
+
class FilmChangedDialog
{
public:
, _hints_dialog (0)
, _servers_list_dialog (0)
{
-#ifdef DCPOMATIC_WINDOWS_CONSOLE
+#if defined(DCPOMATIC_WINDOWS) && defined(DCPOMATIC_WINDOWS_CONSOLE)
AllocConsole();
HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
overall_panel->SetSizer (main_sizer);
}
+ void check_film_state_version (int v)
+ {
+ if (v == 4) {
+ error_dialog (
+ this,
+ _("This film was created with an old version of DVD-o-matic and may not load correctly "
+ "in this version. Please check the film's settings carefully.")
+ );
+ }
+ }
+
private:
void set_film ()
try {
film.reset (new Film (wx_to_std (c->GetPath ())));
film->read_metadata ();
+ check_film_state_version (film->state_version ());
film->log()->set_level (log_level);
set_film ();
} catch (std::exception& e) {
shared_ptr<Job> (new SendKDMEmailJob (film, d->screens (), d->dcp (), d->from (), d->until ()))
);
}
- } catch (KDMError& e) {
+ } catch (exception& e) {
error_dialog (this, e.what ());
+ } catch (...) {
+ error_dialog (this, _("An unknown exeception occurred."));
}
d->Destroy ();
static const wxCmdLineEntryDesc command_line_description[] = {
{ wxCMD_LINE_OPTION, "l", "log", "set log level (silent, verbose or timing)", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
{ wxCMD_LINE_SWITCH, "n", "new", "create new film", wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },
- { wxCMD_LINE_PARAM, 0, 0, "film to load or create", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE | wxCMD_LINE_PARAM_OPTIONAL },
+ { wxCMD_LINE_OPTION, "c", "content", "add content file", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
+ { wxCMD_LINE_PARAM, 0, 0, "film to load or create", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
{ wxCMD_LINE_NONE, "", "", "", wxCmdLineParamType (0), 0 }
};
film->set_name (boost::filesystem::path (film_to_create).filename().generic_string ());
}
+ if (!content_to_add.empty ()) {
+ film->examine_and_add_content (content_factory (film, content_to_add));
+ }
+
_frame = new Frame (_("DCP-o-matic"));
SetTopWindow (_frame);
_frame->Maximize ();
_timer.reset (new wxTimer (this));
_timer->Start (1000);
+ if (film) {
+ _frame->check_film_state_version (film->state_version ());
+ }
+
UpdateChecker::instance()->StateChanged.connect (boost::bind (&App::update_checker_state_changed, this));
if (Config::instance()->check_for_updates ()) {
UpdateChecker::instance()->run ();
if (parser.Found (wxT ("new"))) {
film_to_create = wx_to_std (parser.GetParam (0));
} else {
- film_to_load = wx_to_std (parser.GetParam(0));
+ film_to_load = wx_to_std (parser.GetParam (0));
}
}
+ wxString content;
+ if (parser.Found (wxT ("content"), &content)) {
+ content_to_add = wx_to_std (content);
+ }
+
wxString log;
if (parser.Found (wxT ("log"), &log)) {
log_level = wx_to_std (log);
}
}
- wxFrame* _frame;
+ Frame* _frame;
shared_ptr<wxTimer> _timer;
};