diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-03-15 23:47:50 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-03-15 23:49:09 +0000 |
| commit | dc87773c69beb0249c1d50841730a10a496b563a (patch) | |
| tree | a73bb1c0541d8034f9d0c7d417ba91f3b55ec163 /src | |
| parent | 813732537680680737c2b8f9a5796ac58ebbe980 (diff) | |
Missing files.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/verify_dcp_job.cc | 63 | ||||
| -rw-r--r-- | src/lib/verify_dcp_job.h | 43 | ||||
| -rw-r--r-- | src/wx/verify_dcp_dialog.cc | 80 | ||||
| -rw-r--r-- | src/wx/verify_dcp_dialog.h | 34 |
4 files changed, 220 insertions, 0 deletions
diff --git a/src/lib/verify_dcp_job.cc b/src/lib/verify_dcp_job.cc new file mode 100644 index 000000000..0a54cabd0 --- /dev/null +++ b/src/lib/verify_dcp_job.cc @@ -0,0 +1,63 @@ +/* + Copyright (C) 2018 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic 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. + + DCP-o-matic 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 DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "verify_dcp_job.h" +#include "content.h" + +#include "i18n.h" + +using std::string; +using std::vector; +using boost::shared_ptr; + +VerifyDCPJob::VerifyDCPJob (vector<boost::filesystem::path> directories) + : Job (shared_ptr<Film>()) + , _directories (directories) +{ + +} + +string +VerifyDCPJob::name () const +{ + return _("Verify DCP"); +} + +string +VerifyDCPJob::json_name () const +{ + return N_("verify_dcp"); +} + +void +VerifyDCPJob::run () +{ + _notes = dcp::verify (_directories); + + bool failed = false; + BOOST_FOREACH (dcp::VerificationNote i, _notes) { + if (i.type() == dcp::VerificationNote::ERROR) { + failed = true; + } + } + + set_progress (1); + set_state (failed ? FINISHED_ERROR : FINISHED_OK); +} diff --git a/src/lib/verify_dcp_job.h b/src/lib/verify_dcp_job.h new file mode 100644 index 000000000..f61e44372 --- /dev/null +++ b/src/lib/verify_dcp_job.h @@ -0,0 +1,43 @@ +/* + Copyright (C) 2018 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic 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. + + DCP-o-matic 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 DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "job.h" +#include <dcp/verify.h> +#include <boost/shared_ptr.hpp> + +class Content; + +class VerifyDCPJob : public Job +{ +public: + VerifyDCPJob (std::vector<boost::filesystem::path> directories); + + std::string name () const; + std::string json_name () const; + void run (); + + std::list<dcp::VerificationNote> notes () const { + return _notes; + } + +private: + std::vector<boost::filesystem::path> _directories; + std::list<dcp::VerificationNote> _notes; +}; diff --git a/src/wx/verify_dcp_dialog.cc b/src/wx/verify_dcp_dialog.cc new file mode 100644 index 000000000..b1eea0fd2 --- /dev/null +++ b/src/wx/verify_dcp_dialog.cc @@ -0,0 +1,80 @@ +/* + Copyright (C) 2018 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic 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. + + DCP-o-matic 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 DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "verify_dcp_dialog.h" +#include "wx_util.h" +#include <dcp/verify.h> +#include <wx/richtext/richtextctrl.h> +#include <boost/foreach.hpp> + +using std::list; + +VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, list<dcp::VerificationNote> notes) + : wxDialog (parent, wxID_ANY, _("DCP verification")) +{ + wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL); + _text = new wxRichTextCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (400, 300), wxRE_READONLY); + sizer->Add (_text, 1, wxEXPAND | wxALL, 6); + + wxStdDialogButtonSizer* buttons = CreateStdDialogButtonSizer (0); + sizer->Add (CreateSeparatedSizer(buttons), wxSizerFlags().Expand().DoubleBorder()); + buttons->SetAffirmativeButton (new wxButton (this, wxID_OK)); + buttons->Realize (); + + SetSizer (sizer); + sizer->Layout (); + sizer->SetSizeHints (this); + + _text->GetCaret()->Hide (); + + if (notes.empty ()) { + _text->BeginStandardBullet (N_("standard/circle"), 1, 50); + _text->WriteText (_("DCP validates OK.")); + _text->EndStandardBullet (); + return; + } + + BOOST_FOREACH (dcp::VerificationNote i, notes) { + switch (i.type()) { + case dcp::VerificationNote::NOTE: + _text->BeginStandardBullet (N_("standard/circle"), 1, 50); + break; + case dcp::VerificationNote::WARNING: + _text->BeginStandardBullet (N_("standard/diamond"), 1, 50); + break; + case dcp::VerificationNote::ERROR: + _text->BeginSymbolBullet (N_("!"), 1, 50); + break; + } + + _text->WriteText (std_to_wx (i.note())); + _text->Newline (); + + switch (i.type()) { + case dcp::VerificationNote::NOTE: + case dcp::VerificationNote::WARNING: + _text->EndStandardBullet (); + break; + case dcp::VerificationNote::ERROR: + _text->EndSymbolBullet (); + break; + } + } +} diff --git a/src/wx/verify_dcp_dialog.h b/src/wx/verify_dcp_dialog.h new file mode 100644 index 000000000..1ecaf2d73 --- /dev/null +++ b/src/wx/verify_dcp_dialog.h @@ -0,0 +1,34 @@ +/* + Copyright (C) 2018 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic 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. + + DCP-o-matic 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 DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include <dcp/verify.h> +#include <wx/wx.h> +#include <list> + +class wxRichTextCtrl; + +class VerifyDCPDialog : public wxDialog +{ +public: + VerifyDCPDialog (wxWindow* parent, std::list<dcp::VerificationNote> notes); + +private: + wxRichTextCtrl* _text; +}; |
