X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Frewrite_subs.cc;h=1a3cfbff0743e4cbfcebc38a158977f1f0d71281;hb=107482fc19404e20db544e989d880752377fde26;hp=c7f8bfbdfa22944f0e24448841ab05e80d5ecea7;hpb=932b942a51bef4e2dd2de9f83aa5b68ad07f60f9;p=libdcp.git diff --git a/test/rewrite_subs.cc b/test/rewrite_subs.cc index c7f8bfbd..1a3cfbff 100644 --- a/test/rewrite_subs.cc +++ b/test/rewrite_subs.cc @@ -1,44 +1,72 @@ +/* + Copyright (C) 2012-2014 Carl Hetherington + + This program 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, + 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. + +*/ + #include #include "dcp.h" #include "cpl.h" #include "reel.h" -#include "subtitle_asset.h" +#include "subtitle_content.h" +#include "reel_subtitle_asset.h" #include "exceptions.h" using std::cout; using std::cerr; using std::list; +using std::string; using boost::shared_ptr; -using namespace libdcp; +using namespace dcp; int main (int argc, char* argv[]) -try { - if (argc < 2) { - cerr << "Syntax: " << argv[0] << " \n"; - exit (EXIT_FAILURE); - } - - DCP* dcp = new DCP (argv[1]); - dcp->read (false); - - list > cpls = dcp->cpls (); - for (list >::iterator i = cpls.begin(); i != cpls.end(); ++i) { - - list > reels = (*i)->reels (); - for (list >::iterator j = reels.begin(); j != reels.end(); ++j) { - - if ((*j)->main_subtitle()) { - (*j)->main_subtitle()->write_xml (); + try { + if (argc < 2) { + cerr << "Syntax: " << argv[0] << " \n"; + exit (EXIT_FAILURE); + } + + DCP* dcp = new DCP (argv[1]); + dcp->read (true); + + list > cpls = dcp->cpls (); + for (list >::iterator i = cpls.begin(); i != cpls.end(); ++i) { + + list > reels = (*i)->reels (); + for (list >::iterator j = reels.begin(); j != reels.end(); ++j) { + + if ((*j)->main_subtitle()) { + (*j)->main_subtitle()->subtitle_content()->write_xml ((*j)->main_subtitle()->subtitle_content()->file ()); + } } } } + catch (FileError& e) + { + cerr << e.what() << " (" << e.filename() << ") when reading " << argv[1] << "\n"; + exit (EXIT_FAILURE); + } + catch (DCPReadError& e) + { + cerr << e.what() << " when reading " << argv[1] << "\n"; + exit (EXIT_FAILURE); + } + return 0; } -catch (FileError& e) -{ - cerr << e.what() << " (" << e.filename() << ")\n"; - exit (EXIT_FAILURE); -}