X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fmain.cpp;h=b905c2a03aeaa58e8748553613a41119128495e0;hb=ee0fd97e97433501befb38b88478ab4eb7487ff5;hp=48b35460c5ba03f5d398b1873bc5a7a5b41fd9a4;hpb=28f28705612902c15cd0702cc891fba35bf2d2df;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/main.cpp b/synfig-core/trunk/src/synfig/main.cpp index 48b3546..b905c2a 100644 --- a/synfig-core/trunk/src/synfig/main.cpp +++ b/synfig-core/trunk/src/synfig/main.cpp @@ -1,20 +1,22 @@ /* === S Y N F I G ========================================================= */ -/*! \file main.cpp +/*! \file synfig/main.cpp ** \brief \writeme ** -** $Id: main.cpp,v 1.3 2005/01/10 07:40:26 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package 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. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package 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. ** \endlegal */ /* ========================================================================= */ @@ -53,10 +55,6 @@ #include "mutex.h" -#ifdef DEATH_TIME -#include -#endif - #ifdef HAVE_SIGNAL_H #include #endif @@ -115,8 +113,6 @@ synfig::check_version_(int version,int vec_size, int color_size,int canvas_size, { bool ret=true; - CHECK_EXPIRE_TIME(); - if(version!=SYNFIG_LIBRARY_VERSION) { synfig::error(_("API Version mismatch (LIB:%d, PROG:%d)"),SYNFIG_LIBRARY_VERSION,version); @@ -142,11 +138,11 @@ synfig::check_version_(int version,int vec_size, int color_size,int canvas_size, synfig::error(_("Size of Layer mismatch (app:%d, lib:%d)"),layer_size,sizeof(Layer)); ret=false; } - + return ret; } -static void broken_pipe_signal (int sig) { +static void broken_pipe_signal (int /*sig*/) { synfig::warning("Broken Pipe..."); } @@ -193,12 +189,12 @@ bool retrieve_modules_to_load(String filename,std::list &modules_to_load String modulename; getline(file,modulename); if(!modulename.empty() && find(modules_to_load.begin(),modules_to_load.end(),modulename)==modules_to_load.end()) - modules_to_load.push_back(modulename); + modules_to_load.push_back(modulename); } } - - + + return true; } @@ -214,24 +210,25 @@ synfig::Main::Main(const synfig::String& basepath,ProgressCallback *cb): synfig_ref_count_.reset(); ref_count_=synfig_ref_count_; - - // Add initialization after this point + // Add initialization after this point - CHECK_EXPIRE_TIME(); +#ifdef ENABLE_NLS + bindtextdomain("synfig", LOCALEDIR); +#endif String prefix=basepath+"/.."; - int i; + unsigned int i; #ifdef _DEBUG std::set_terminate(__gnu_cxx::__verbose_terminate_handler); #endif - + #if defined(HAVE_SIGNAL_H) && defined(SIGPIPE) signal(SIGPIPE, broken_pipe_signal); #endif - + //_config_search_path=new vector"string.h"(); - + // Init the subsystems if(cb)cb->amount_complete(0, 100); if(cb)cb->task(_("Starting Subsystem \"Modules\"")); @@ -252,7 +249,7 @@ synfig::Main::Main(const synfig::String& basepath,ProgressCallback *cb): Module::subsys_stop(); throw std::runtime_error(_("Unable to initialize subsystem \"Targets\"")); } - + if(cb)cb->task(_("Starting Subsystem \"Importers\"")); if(!Importer::subsys_init()) { @@ -271,16 +268,16 @@ synfig::Main::Main(const synfig::String& basepath,ProgressCallback *cb): Module::subsys_stop(); throw std::runtime_error(_("Unable to initialize subsystem \"ValueNodes\"")); } - + // Load up the list importer Importer::book()[String("lst")]=ListImporter::create; - - - // Load up the modules + + + // Load up the modules std::list modules_to_load; std::vector locations; - + if(!getenv("SYNFIG_MODULE_LIST")) { locations.push_back("standard"); @@ -305,7 +302,7 @@ synfig::Main::Main(const synfig::String& basepath,ProgressCallback *cb): { locations.push_back(getenv("SYNFIG_MODULE_LIST")); } -/* +/* const char *locations[]= { "standard", //0 @@ -327,24 +324,22 @@ synfig::Main::Main(const synfig::String& basepath,ProgressCallback *cb): #endif }; */ - + for(i=0;itask(strprintf(_("Loading modules from %s"),locations[i].c_str())); - + std::list::iterator iter; - + for(i=0,iter=modules_to_load.begin();iter!=modules_to_load.end();++iter,i++) { Module::Register(*iter,cb); if(cb)cb->amount_complete((i+1)*100,modules_to_load.size()*100); } - + // load_modules(cb); - - CHECK_EXPIRE_TIME(); - + if(cb)cb->amount_complete(100, 100); if(cb)cb->task(_("DONE")); } @@ -367,29 +362,38 @@ synfig::Main::~Main() synfig::warning("%s: count()=%d",iter->first.c_str(), iter->second.count()); } } - + + // synfig::info("ValueNode::subsys_stop()"); ValueNode::subsys_stop(); + // synfig::info("Importer::subsys_stop()"); Importer::subsys_stop(); + // synfig::info("Target::subsys_stop()"); Target::subsys_stop(); + // synfig::info("Layer::subsys_stop()"); Layer::subsys_stop(); - - /*! \fixme For some reason, uncommenting the next - ** line will cause things to crash. This needs to be - ** looked into at some point. */ - //Module::subsys_stop(); - + /*! \todo For some reason, uncommenting the next line will cause things to crash. + This needs to be looked into at some point. */ + // synfig::info("Module::subsys_stop()"); + // Module::subsys_stop(); + // synfig::info("Exiting"); + #if defined(HAVE_SIGNAL_H) && defined(SIGPIPE) signal(SIGPIPE, SIG_DFL); #endif } - - - - - - - +static const String +current_time() +{ + const int buflen = 50; + time_t t; + struct tm *lt; + char b[buflen]; + time(&t); + lt = localtime(&t); + strftime(b, buflen, " [%X] ", lt); + return String(b); +} void synfig::error(const char *format,...) @@ -403,7 +407,7 @@ void synfig::error(const String &str) { static Mutex mutex; Mutex::Lock lock(mutex); - cerr<<"synfig("<