X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fexceptions.cc;h=3991c57b97ab98608ed280d02d581827fecdfae5;hp=f34cebbfe04a69f94fa2e07df3bb74aab5d41a51;hb=56caa542a558a3e261a3da4773c9ed3e66e262ab;hpb=4616b19fb5241a54c9d57f7a91bb975f41aed14b diff --git a/src/lib/exceptions.cc b/src/lib/exceptions.cc index f34cebbfe..3991c57b9 100644 --- a/src/lib/exceptions.cc +++ b/src/lib/exceptions.cc @@ -1,19 +1,20 @@ /* - Copyright (C) 2012-2014 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington - This program is free software; you can redistribute it and/or modify + 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. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ @@ -23,17 +24,26 @@ #include "i18n.h" using std::string; +using std::runtime_error; +using boost::optional; /** @param f File that we were trying to open */ -OpenFileError::OpenFileError (boost::filesystem::path f) - : FileError (String::compose (_("could not open file %1"), f.string()), f) +OpenFileError::OpenFileError (boost::filesystem::path f, int error, Mode mode) + : FileError ( + String::compose ( + mode == READ_WRITE ? _("could not open file %1 for read/write (%2)") : + (mode == READ ? _("could not open file %1 for read (%2)") : _("could not open file %1 for write (%2)")), + f.string(), + error), + f + ) { } -/** @param f File that we were trying to create */ -CreateFileError::CreateFileError (boost::filesystem::path f) - : FileError (String::compose (_("could not create file %1"), f.string()), f) +FileNotFoundError::FileNotFoundError (boost::filesystem::path f) + : runtime_error(String::compose("File %1 not found", f.string())) + , _file (f) { } @@ -47,23 +57,84 @@ ReadFileError::ReadFileError (boost::filesystem::path f, int e) WriteFileError::WriteFileError (boost::filesystem::path f, int e) : FileError (String::compose (_("could not write to file %1 (%2)"), f.string(), strerror (e)), f) { - + } MissingSettingError::MissingSettingError (string s) - : SettingError (s, String::compose (_("missing required setting %1"), s)) + : SettingError (s, String::compose (_("Missing required setting %1"), s)) { } PixelFormatError::PixelFormatError (string o, AVPixelFormat f) - : StringError (String::compose (_("Cannot handle pixel format %1 during %2"), f, o)) + : runtime_error (String::compose (_("Cannot handle pixel format %1 during %2"), (int) f, o)) +{ + +} + +TextSubtitleError::TextSubtitleError (string saw, string expecting, boost::filesystem::path f) + : FileError (String::compose (_("Error in subtitle file: saw %1 while expecting %2"), saw.empty() ? "[nothing]" : saw, expecting), f) +{ + +} + +InvalidSignerError::InvalidSignerError () + : runtime_error (_("The certificate chain for signing is invalid")) +{ + +} + +InvalidSignerError::InvalidSignerError (string reason) + : runtime_error (String::compose (_("The certificate chain for signing is invalid (%1)"), reason)) +{ + +} + +ProgrammingError::ProgrammingError (string file, int line, string message) + : runtime_error (String::compose (_("Programming error at %1:%2 %3"), file, line, message)) +{ + +} + +KDMAsContentError::KDMAsContentError () + : runtime_error (_("This file is a KDM. KDMs should be added to DCP content by right-clicking the content and choosing \"Add KDM\".")) +{ + +} + +KDMError::KDMError (string s, string d) + : runtime_error (String::compose ("%1 (%2)", s, d)) + , _summary (s) + , _detail (d) +{ + +} + +GLError::GLError (char const * last, int e) + : runtime_error (String::compose("%1 failed %2", last, e)) { } -SubRipError::SubRipError (string saw, string expecting, boost::filesystem::path f) - : FileError (String::compose (_("Error in SubRip file: saw %1 while expecting %2"), saw.empty() ? "[nothing]" : saw, expecting), f) +CopyError::CopyError (string m, optional n) + : runtime_error (String::compose("%1%2", m, n ? String::compose(" (%1)", *n) : "")) + , _message (m) + , _number (n) { - + +} + +CommunicationFailedError::CommunicationFailedError () + : CopyError (_("Lost communication between main and writer processes")) +{ + } + +VerifyError::VerifyError (string m, int n) + : runtime_error (String::compose("%1 (%2)", m, n)) + , _message (m) + , _number (n) +{ + +} +