diff --git a/rtengine/CA_correct_RT.cc b/rtengine/CA_correct_RT.cc index 05fd806ca..36b2fa05f 100644 --- a/rtengine/CA_correct_RT.cc +++ b/rtengine/CA_correct_RT.cc @@ -28,6 +28,7 @@ #include "gauss.h" #include "median.h" #include "StopWatch.h" + namespace { bool LinEqSolve(int nDim, double* pfMatr, double* pfVect, double* pfSolution) @@ -106,10 +107,6 @@ bool LinEqSolve(int nDim, double* pfMatr, double* pfVect, double* pfSolution) //end of linear equation solver } -namespace rtengine { - extern const Settings* settings; -} - using namespace std; using namespace rtengine; diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index b708f521a..02164aded 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -78,11 +78,7 @@ namespace rtengine */ -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -extern const Settings* settings; extern MyMutex *fftwMutex; diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index 93f0057f1..e8f7b1cbf 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -20,8 +20,6 @@ namespace rtengine { -extern const Settings* settings; - CameraConst::CameraConst() : pdafOffset(0) { memset(dcraw_matrix, 0, sizeof(dcraw_matrix)); diff --git a/rtengine/ciecam02.cc b/rtengine/ciecam02.cc index 3219884ad..0553c129e 100644 --- a/rtengine/ciecam02.cc +++ b/rtengine/ciecam02.cc @@ -34,10 +34,6 @@ namespace rtengine { -#ifdef _DEBUG -extern const Settings* settings; -#endif - void Ciecam02::curvecolorfloat (float satind, float satval, float &sres, float parsat) { if (satind > 0.f) { diff --git a/rtengine/color.cc b/rtengine/color.cc index 7a91f0073..20b2c7310 100644 --- a/rtengine/color.cc +++ b/rtengine/color.cc @@ -30,8 +30,6 @@ using namespace std; namespace rtengine { -extern const Settings* settings; - cmsToneCurve* Color::linearGammaTRC; LUTf Color::cachef; LUTf Color::cachefy; diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 927d8423d..413880d49 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -31,8 +31,6 @@ namespace rtengine { -extern const Settings* settings; - static const double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desmis 2° Standard Observer. {0.0000000, 0.000000, 0.000000}, {0.0000000, 0.000000, 0.000000}, {0.0001299, 0.0003917, 0.0006061}, {0.0002321, 0.000006965, 0.001086}, {0.0004149, 0.00001239, 0.001946}, {0.0007416, 0.00002202, 0.003846}, diff --git a/rtengine/dcp.cc b/rtengine/dcp.cc index 9dbee9375..ea4e40514 100644 --- a/rtengine/dcp.cc +++ b/rtengine/dcp.cc @@ -33,13 +33,6 @@ #include "rt_math.h" #include "../rtgui/options.h" -namespace rtengine -{ - -extern const Settings* settings; - -} - using namespace rtengine; using namespace rtexif; @@ -1868,7 +1861,7 @@ DCPProfile* DCPStore::getProfile(const Glib::ustring& filename) const if (res->isValid()) { // Add profile profile_cache[key] = res; - if (options.rtSettings.verbose) { + if (settings->verbose) { printf("DCP profile '%s' loaded from disk\n", filename.c_str()); } return res; diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 819a6d01e..06c9d59bd 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -48,8 +48,6 @@ constexpr T skips(T a, T b) namespace rtengine { -extern const Settings* settings; - Crop::Crop(ImProcCoordinator* parent, EditDataProvider *editDataProvider, bool isDetailWindow) : PipetteBuffer(editDataProvider), origCrop(nullptr), laboCrop(nullptr), labnCrop(nullptr), cropImg (nullptr), transCrop (nullptr), cieCrop (nullptr), diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index f1b9cb5e8..823260129 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -40,8 +40,6 @@ using namespace std; namespace rtengine { -extern const Settings* settings; - #undef ABS #define ABS(a) ((a)<0?-(a):(a)) diff --git a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc index fbeb2596e..f5a7686e6 100644 --- a/rtengine/dfmanager.cc +++ b/rtengine/dfmanager.cc @@ -29,8 +29,6 @@ namespace rtengine { -extern const Settings* settings; - // *********************** class dfInfo ************************************** inline dfInfo& dfInfo::operator =(const dfInfo &o) diff --git a/rtengine/dirpyr_equalizer.cc b/rtengine/dirpyr_equalizer.cc index d40f9fce6..6fd4f002c 100644 --- a/rtengine/dirpyr_equalizer.cc +++ b/rtengine/dirpyr_equalizer.cc @@ -350,8 +350,6 @@ void idirpyr_eq_channelcam(const float * const * data_coarse, const float * cons namespace rtengine { -extern const Settings* settings; - void ImProcFunctions::dirpyr_equalizer(const float * const * src, float ** dst, int srcwidth, int srcheight, const float * const * l_a, const float * const * l_b, const double * mult, const double dirpyrThreshold, const double skinprot, float b_l, float t_l, float t_r, int scaleprev) { //sequence of scales diff --git a/rtengine/dynamicprofile.cc b/rtengine/dynamicprofile.cc index 607b0b528..402610ed1 100644 --- a/rtengine/dynamicprofile.cc +++ b/rtengine/dynamicprofile.cc @@ -179,7 +179,7 @@ bool DynamicProfileRules::loadRules() return false; } - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("loading dynamic profiles...\n"); } @@ -198,7 +198,7 @@ bool DynamicProfileRules::loadRules() return false; } - if (options.rtSettings.verbose) { + if (settings->verbose) { printf (" loading rule %d\n", serial); } @@ -228,7 +228,7 @@ bool DynamicProfileRules::loadRules() bool DynamicProfileRules::storeRules() { - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("saving dynamic profiles...\n"); } diff --git a/rtengine/ffmanager.cc b/rtengine/ffmanager.cc index dbbc25b81..d8b082dd1 100644 --- a/rtengine/ffmanager.cc +++ b/rtengine/ffmanager.cc @@ -30,8 +30,6 @@ namespace rtengine { -extern const Settings* settings; - // *********************** class ffInfo ************************************** inline ffInfo& ffInfo::operator =(const ffInfo &o) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 26c1314f4..f373f8c14 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -36,13 +36,6 @@ //#define BENCHMARK #include "StopWatch.h" -namespace rtengine -{ - -extern const Settings* settings; - -} - namespace { diff --git a/rtengine/filmnegativethumb.cc b/rtengine/filmnegativethumb.cc index 6a4da31b0..1e52300d4 100644 --- a/rtengine/filmnegativethumb.cc +++ b/rtengine/filmnegativethumb.cc @@ -22,19 +22,11 @@ #include "rtthumbnail.h" #include "opthelper.h" #include "rt_algo.h" -#include "rtengine.h" #include "settings.h" #include "procparams.h" #define BENCHMARK #include "StopWatch.h" -namespace rtengine -{ - -extern const Settings* settings; - -} - void rtengine::Thumbnail::processFilmNegative( const procparams::ProcParams ¶ms, const Imagefloat* baseImg, diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index 35dd74463..697a5e3d3 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -288,8 +288,6 @@ void boxblur_resamp(const float* const* src, float** dst, float** temp, int H, i namespace rtengine { -extern const Settings* settings; - void RawImageSource::HLRecovery_inpaint(float** red, float** green, float** blue) { double progress = 0.0; diff --git a/rtengine/iccstore.cc b/rtengine/iccstore.cc index 02a1fffac..02fe4c16d 100644 --- a/rtengine/iccstore.cc +++ b/rtengine/iccstore.cc @@ -34,6 +34,7 @@ #include "iccstore.h" #include "iccmatrices.h" +#include "utils.h" #include "../rtgui/guiutils.h" #include "../rtgui/options.h" @@ -44,12 +45,6 @@ #include "cJSON.h" #define inkc_constant 0x696E6B43 -namespace rtengine -{ - -extern const Settings* settings; - -} namespace { diff --git a/rtengine/imageio.cc b/rtengine/imageio.cc index f335f5be8..c586aabaf 100644 --- a/rtengine/imageio.cc +++ b/rtengine/imageio.cc @@ -810,7 +810,7 @@ int ImageIO::loadTIFF (const Glib::ustring &fname) * TIFFTAG_SMAXSAMPLEVALUE, but for now, we normalize the image to the * effective minimum and maximum values */ - if (options.rtSettings.verbose) { + if (settings->verbose) { printf("Information of \"%s\":\n", fname.c_str()); uint16 tiffDefaultScale, tiffBaselineExposure, tiffLinearResponseLimit; if (TIFFGetField(in, TIFFTAG_DEFAULTSCALE, &tiffDefaultScale)) { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 090c3376d..c61b37341 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -47,8 +47,6 @@ namespace rtengine { -extern const Settings* settings; - ImProcCoordinator::ImProcCoordinator() : orig_prev(nullptr), oprevi(nullptr), diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index c84027e6a..886e49567 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -267,8 +267,6 @@ namespace rtengine using namespace procparams; -extern const Settings* settings; - ImProcFunctions::~ImProcFunctions () { if (monitorTransform) { diff --git a/rtengine/init.cc b/rtengine/init.cc index 8d3ee96cb..453374e3a 100644 --- a/rtengine/init.cc +++ b/rtengine/init.cc @@ -42,7 +42,7 @@ const Settings* settings; MyMutex* lcmsMutex = nullptr; MyMutex *fftwMutex = nullptr; -int init (const Settings* s, Glib::ustring baseDir, Glib::ustring userSettingsDir, bool loadAll) +int init (const Settings* s, const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir, bool loadAll) { settings = s; ProcParams::init(); diff --git a/rtengine/ipdehaze.cc b/rtengine/ipdehaze.cc index ce5843da8..729282dbe 100644 --- a/rtengine/ipdehaze.cc +++ b/rtengine/ipdehaze.cc @@ -200,7 +200,7 @@ float estimate_ambient_light(const array2D &R, const array2D &G, c } } - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << "dehaze: computing ambient light from " << patches.size() << " patches" << std::endl; } @@ -284,7 +284,7 @@ void ImProcFunctions::dehaze(Imagefloat *img) const int H = img->getHeight(); const float strength = LIM01(float(params->dehaze.strength) / 100.f * 0.9f); - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << "dehaze: strength = " << strength << std::endl; } @@ -326,7 +326,7 @@ void ImProcFunctions::dehaze(Imagefloat *img) } if (min(ambient[0], ambient[1], ambient[2]) < 0.01f) { - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << "dehaze: no haze detected" << std::endl; } restore(img, maxChannel, multiThread); @@ -334,7 +334,7 @@ void ImProcFunctions::dehaze(Imagefloat *img) } patchsize = max(max(W, H) / 600, 2); - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << "dehaze: ambient light is " << ambient[0] << ", " << ambient[1] << ", " << ambient[2] << std::endl; @@ -349,7 +349,7 @@ void ImProcFunctions::dehaze(Imagefloat *img) array2D guideB(W, H, img->b.ptrs, ARRAY2D_BYREFERENCE); guidedFilter(guideB, dark, dark, radius, epsilon, multiThread); - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << "dehaze: max distance is " << maxDistance << std::endl; } diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 6166c928e..1d3f2f494 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -34,8 +34,6 @@ namespace rtengine extern void filmlike_clip(float *r, float *g, float *b); -extern const Settings* settings; - namespace { inline void copyAndClampLine(const float *src, unsigned char *dst, const int W) diff --git a/rtengine/ipsharpen.cc b/rtengine/ipsharpen.cc index 8f63b59f6..0758011bb 100644 --- a/rtengine/ipsharpen.cc +++ b/rtengine/ipsharpen.cc @@ -161,8 +161,6 @@ void dcdamping (float** aI, float** aO, float damping, int W, int H) namespace rtengine { -extern const Settings* settings; - void ImProcFunctions::deconvsharpening (float** luminance, float** tmp, const float * const * blend, int W, int H, const procparams::SharpeningParams &sharpenParam, double Scale) { if (sharpenParam.deconvamount == 0 && sharpenParam.blurradius < 0.25f) { diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 2ba6ec97b..d550664b9 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -60,8 +60,6 @@ namespace rtengine { -extern const Settings* settings; - struct cont_params { float mul[10]; int chrom; diff --git a/rtengine/lcp.cc b/rtengine/lcp.cc index e2442e094..0b73f6960 100644 --- a/rtengine/lcp.cc +++ b/rtengine/lcp.cc @@ -35,13 +35,6 @@ #include "settings.h" #include "utils.h" -namespace rtengine -{ - -extern const Settings* settings; - -} - class rtengine::LCPProfile::LCPPersModel { public: diff --git a/rtengine/profilestore.cc b/rtengine/profilestore.cc index 23e4d8321..7d937e736 100644 --- a/rtengine/profilestore.cc +++ b/rtengine/profilestore.cc @@ -160,7 +160,7 @@ void ProfileStore::_parseProfiles () if (findEntryFromFullPathU (options.defProfRaw) == nullptr) { options.setDefProfRawMissing (true); - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("WARNING: Default profile \"%s\" for raw images not found!\n", options.defProfRaw.c_str()); } } @@ -168,7 +168,7 @@ void ProfileStore::_parseProfiles () if (findEntryFromFullPathU (options.defProfImg) == nullptr) { options.setDefProfImgMissing (true); - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("WARNING: Default profile \"%s\" for standard images not found!\n", options.defProfImg.c_str()); } } @@ -220,7 +220,7 @@ bool ProfileStore::parseDir (Glib::ustring& realPath, Glib::ustring& virtualPath if (lastdot != Glib::ustring::npos && lastdot == currDir.length() - 4 && currDir.substr (lastdot).casefold() == paramFileExtension) { // file found - if ( options.rtSettings.verbose ) { + if (settings->verbose) { printf ("Processing file %s...", fname.c_str()); } @@ -233,7 +233,7 @@ bool ProfileStore::parseDir (Glib::ustring& realPath, Glib::ustring& virtualPath if (!res && pProf->pparams->ppVersion >= 220) { fileFound = true; - if ( options.rtSettings.verbose ) { + if (settings->verbose) { printf ("OK\n"); } @@ -244,7 +244,7 @@ bool ProfileStore::parseDir (Glib::ustring& realPath, Glib::ustring& virtualPath // map the partial profile partProfiles[filePSE] = pProf; //partProfiles.insert( std::pair (filePSE, pProf) ); - } else if ( options.rtSettings.verbose ) { + } else if (settings->verbose) { printf ("failed!\n"); } } @@ -522,7 +522,7 @@ PartialProfile *ProfileStore::loadDynamicProfile (const FramesMetaData *im) for (auto rule : dynamicRules) { if (rule.matches (im)) { - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("found matching profile %s\n", rule.profilepath.c_str()); } diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 0134d4d16..a69a97ab7 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -19,8 +19,6 @@ namespace rtengine { -extern const Settings* settings; - RawImage::RawImage( const Glib::ustring &name ) : data(nullptr) , prefilters(0) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 347331467..0836a3832 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -426,7 +426,6 @@ void transLineD1x (const float* const red, const float* const green, const float namespace rtengine { -extern const Settings* settings; #undef ABS #undef DIST diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index f2c448805..389fe8355 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -562,7 +562,7 @@ public: * @param baseDir base directory of RT's installation dir * @param userSettingsDir RT's base directory in the user's settings dir * @param loadAll if false, don't load the various dependencies (profiles, HALDClut files, ...), they'll be loaded from disk each time they'll be used (launching time improvement) */ -int init (const Settings* s, Glib::ustring baseDir, Glib::ustring userSettingsDir, bool loadAll = true); +int init (const Settings* s, const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir, bool loadAll = true); /** Cleanup the RT engine (static variables) */ void cleanup (); diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 4a7fb2d11..3b6046b4e 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -47,7 +47,6 @@ #include "StopWatch.h" #include "utils.h" -#include "../rtgui/options.h" #include "../rtgui/ppversion.h" namespace @@ -194,8 +193,6 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], namespace rtengine { -extern const Settings *settings; - using namespace procparams; Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h, int fixwh, double wbEq, bool inspectorMode) @@ -335,7 +332,7 @@ Image8 *load_inspector_mode(const Glib::ustring &fname, RawMetaDataLocation &rml neutral.raw.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST); neutral.raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST); neutral.icm.inputProfile = "(camera)"; - neutral.icm.workingProfile = options.rtSettings.srgb; + neutral.icm.workingProfile = settings->srgb; src.preprocess(neutral.raw, neutral.lensProf, neutral.coarse, false); double thresholdDummy = 0.f; @@ -434,7 +431,7 @@ Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataL // did we succeed? if ( err ) { - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << "Could not extract thumb from " << fname.c_str() << std::endl; } delete tpp; @@ -1242,7 +1239,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT ImProcFunctions ipf (¶ms, forHistogramMatching); // enable multithreading when forHistogramMatching is true ipf.setScale (sqrt (double (fw * fw + fh * fh)) / sqrt (double (thumbImg->getWidth() * thumbImg->getWidth() + thumbImg->getHeight() * thumbImg->getHeight()))*scale); - ipf.updateColorProfiles (ICCStore::getInstance()->getDefaultMonitorProfileName(), RenderingIntent(options.rtSettings.monitorIntent), false, false); + ipf.updateColorProfiles (ICCStore::getInstance()->getDefaultMonitorProfileName(), RenderingIntent(settings->monitorIntent), false, false); LUTu hist16 (65536); @@ -2132,11 +2129,11 @@ bool Thumbnail::readData (const Glib::ustring& fname) return true; } catch (Glib::Error &err) { - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("Thumbnail::readData / Error code %d while reading values from \"%s\":\n%s\n", err.code(), fname.c_str(), err.what().c_str()); } } catch (...) { - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("Thumbnail::readData / Unknown exception while trying to load \"%s\"!\n", fname.c_str()); } } @@ -2183,11 +2180,11 @@ bool Thumbnail::writeData (const Glib::ustring& fname) keyData = keyFile.to_data (); } catch (Glib::Error& err) { - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("Thumbnail::writeData / Error code %d while reading values from \"%s\":\n%s\n", err.code(), fname.c_str(), err.what().c_str()); } } catch (...) { - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("Thumbnail::writeData / Unknown exception while trying to save \"%s\"!\n", fname.c_str()); } } @@ -2199,7 +2196,7 @@ bool Thumbnail::writeData (const Glib::ustring& fname) FILE *f = g_fopen (fname.c_str (), "wt"); if (!f) { - if (options.rtSettings.verbose) { + if (settings->verbose) { printf ("Thumbnail::writeData / Error: unable to open file \"%s\" with write access!\n", fname.c_str()); } diff --git a/rtengine/settings.h b/rtengine/settings.h index a32a1b7dd..f261444c8 100644 --- a/rtengine/settings.h +++ b/rtengine/settings.h @@ -96,4 +96,5 @@ public: * @param s a pointer to the Settings instance to destroy. */ static void destroy(Settings* s); }; +extern const Settings* settings; } diff --git a/rtengine/shmap.cc b/rtengine/shmap.cc index f654ab51d..36582df39 100644 --- a/rtengine/shmap.cc +++ b/rtengine/shmap.cc @@ -29,8 +29,6 @@ namespace rtengine { -extern const Settings* settings; - SHMap::SHMap (int w, int h) : max_f(0.f), min_f(0.f), avg(0.f), W(w), H(h) { diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 978479304..2953fc34b 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -38,7 +38,6 @@ namespace rtengine { -extern const Settings* settings; namespace { diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 8e4c05ac8..2e8846412 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -32,8 +32,6 @@ namespace rtengine { -extern const Settings* settings; - template void freeArray (T** a, int H) { for (int i = 0; i < H; i++) { diff --git a/rtgui/adjuster.cc b/rtgui/adjuster.cc index 5182cd825..91394e18d 100644 --- a/rtgui/adjuster.cc +++ b/rtgui/adjuster.cc @@ -20,7 +20,7 @@ #include #include #include "multilangmgr.h" -#include "../rtengine/rtengine.h" +#include "../rtengine/rt_math.h" #include "options.h" #include "guiutils.h" #include "rtimage.h" diff --git a/rtgui/cacheimagedata.cc b/rtgui/cacheimagedata.cc index d31b6c7a5..114508a95 100644 --- a/rtgui/cacheimagedata.cc +++ b/rtgui/cacheimagedata.cc @@ -23,6 +23,7 @@ #include #include "../rtengine/procparams.h" +#include "../rtengine/settings.h" CacheImageData::CacheImageData() : supported(false), @@ -223,11 +224,11 @@ int CacheImageData::load (const Glib::ustring& fname) return 0; } } catch (Glib::Error &err) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("CacheImageData::load / Error code %d while reading values from \"%s\":\n%s\n", err.code(), fname.c_str(), err.what().c_str()); } } catch (...) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("CacheImageData::load / Unknown exception while trying to load \"%s\"!\n", fname.c_str()); } } @@ -305,11 +306,11 @@ int CacheImageData::save (const Glib::ustring& fname) keyData = keyFile.to_data (); } catch (Glib::Error &err) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("CacheImageData::save / Error code %d while reading values from \"%s\":\n%s\n", err.code(), fname.c_str(), err.what().c_str()); } } catch (...) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("CacheImageData::save / Unknown exception while trying to save \"%s\"!\n", fname.c_str()); } } @@ -321,7 +322,7 @@ int CacheImageData::save (const Glib::ustring& fname) FILE *f = g_fopen (fname.c_str (), "wt"); if (!f) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("CacheImageData::save / Error: unable to open file \"%s\" with write access!\n", fname.c_str()); } diff --git a/rtgui/cachemanager.cc b/rtgui/cachemanager.cc index 419538656..9f6e111e5 100644 --- a/rtgui/cachemanager.cc +++ b/rtgui/cachemanager.cc @@ -32,8 +32,8 @@ #include "guiutils.h" #include "options.h" -#include "procparamchangers.h" #include "thumbnail.h" +#include "procparamchangers.h" namespace { @@ -64,7 +64,7 @@ void CacheManager::init () } } - if (error != 0 && options.rtSettings.verbose) { + if (error != 0 && rtengine::settings->verbose) { std::cerr << "Failed to create all cache directories: " << g_strerror(errno) << std::endl; } } @@ -191,7 +191,7 @@ void CacheManager::renameEntry (const std::string& oldfilename, const std::strin error |= g_rename (getCacheFileName ("embprofiles", oldfilename, ".icc", oldmd5).c_str (), getCacheFileName ("embprofiles", newfilename, ".icc", newmd5).c_str ()); error |= g_rename (getCacheFileName ("data", oldfilename, ".txt", oldmd5).c_str (), getCacheFileName ("data", newfilename, ".txt", newmd5).c_str ()); - if (error != 0 && options.rtSettings.verbose) { + if (error != 0 && rtengine::settings->verbose) { std::cerr << "Failed to rename all files for cache entry '" << oldfilename << "': " << g_strerror(errno) << std::endl; } @@ -263,7 +263,7 @@ void CacheManager::deleteDir (const Glib::ustring& dirName) const error |= g_remove (Glib::build_filename (baseDir, dirName, *entry).c_str ()); } - if (error != 0 && options.rtSettings.verbose) { + if (error != 0 && rtengine::settings->verbose) { std::cerr << "Failed to delete all entries in cache directory '" << dirName << "': " << g_strerror(errno) << std::endl; } @@ -288,7 +288,7 @@ void CacheManager::deleteFiles (const Glib::ustring& fname, const std::string& m error |= g_remove (getCacheFileName ("profiles", fname, paramFileExtension, md5).c_str ()); } - if (error != 0 && options.rtSettings.verbose) { + if (error != 0 && rtengine::settings->verbose) { std::cerr << "Failed to delete all files for cache entry '" << fname << "': " << g_strerror(errno) << std::endl; } } diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 0d155e97b..450589fe9 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -22,6 +22,7 @@ #include "guiutils.h" #include "options.h" +#include "rtimage.h" #include "../rtengine/color.h" #include "../rtengine/procparams.h" diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index 32361d5c5..669528ac1 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -63,7 +63,7 @@ std::vector listSubDirs (const Glib::RefPtr& dir, bool subDirs.push_back (file->get_name ()); } catch (const Glib::Exception& exception) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { std::cerr << exception.what().c_str() << std::endl; } @@ -72,7 +72,7 @@ std::vector listSubDirs (const Glib::RefPtr& dir, bool } catch (const Glib::Exception& exception) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { std::cerr << "Failed to list subdirectories of \"" << dir->get_parse_name() << "\": " << exception.what () << std::endl; } diff --git a/rtgui/dynamicprofilepanel.cc b/rtgui/dynamicprofilepanel.cc index 6acad07f9..d7ed8ee97 100644 --- a/rtgui/dynamicprofilepanel.cc +++ b/rtgui/dynamicprofilepanel.cc @@ -18,11 +18,11 @@ */ #include "dynamicprofilepanel.h" -#include "options.h" #include "multilangmgr.h" #include "../rtengine/profilestore.h" #include "../rtengine/rtengine.h" #include "../rtengine/dynamicprofile.h" +#include "../rtengine/settings.h" #include #include @@ -616,7 +616,7 @@ void DynamicProfilePanel::save() if (!ProfileStore::getInstance()->storeRules()) { printf ("Error in saving dynamic profile rules\n"); - } else if (options.rtSettings.verbose) { + } else if (rtengine::settings->verbose) { printf ("Saved %d dynamic profile rules\n", int (rules.size())); } } diff --git a/rtgui/editwindow.h b/rtgui/editwindow.h index 8a2ade6ba..04999d149 100644 --- a/rtgui/editwindow.h +++ b/rtgui/editwindow.h @@ -20,6 +20,7 @@ #include #include "filepanel.h" #include "editorpanel.h" +#include "rtimage.h" #include class EditWindow : public Gtk::Window diff --git a/rtgui/extprog.cc b/rtgui/extprog.cc index a17bcdc6a..a7a757c1b 100644 --- a/rtgui/extprog.cc +++ b/rtgui/extprog.cc @@ -213,7 +213,7 @@ bool ExtProgStore::spawnCommandAsync (const Glib::ustring& cmd) } catch (const Glib::Exception& exception) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { std::cerr << "Failed to execute \"" << cmd << "\": " << exception.what() << std::endl; } @@ -232,7 +232,7 @@ bool ExtProgStore::spawnCommandSync (const Glib::ustring& cmd) } catch (const Glib::Exception& exception) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { std::cerr << "Failed to execute \"" << cmd << "\": " << exception.what() << std::endl; } diff --git a/rtgui/fattaltonemap.cc b/rtgui/fattaltonemap.cc index a0baf3531..89a1e9e30 100644 --- a/rtgui/fattaltonemap.cc +++ b/rtgui/fattaltonemap.cc @@ -23,6 +23,7 @@ #include "fattaltonemap.h" #include "eventmapper.h" +#include "rtimage.h" #include "../rtengine/procparams.h" diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 674501322..8e8bcc216 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -602,7 +602,7 @@ std::vector FileCatalog::getFileList() names.push_back(Glib::build_filename(selectedDirectory, fname)); } catch (Glib::Exception& exception) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { std::cerr << exception.what() << std::endl; } } @@ -610,7 +610,7 @@ std::vector FileCatalog::getFileList() } catch (Glib::Exception& exception) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { std::cerr << "Failed to list directory \"" << selectedDirectory << "\": " << exception.what() << std::endl; } diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index b09e20abb..038131b9b 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -28,13 +28,23 @@ #include "../rtengine/coord.h" #include "../rtengine/noncopyable.h" -#include "../rtengine/rtengine.h" -#include "rtimage.h" +#include "threadutils.h" // for convenience... #include "pathutils.h" +namespace rtengine { +namespace procparams +{ + +class ProcParams; + +struct CropParams; +} +} + +class RTImage; Glib::ustring escapeHtmlChars(const Glib::ustring &src); bool removeIfThere (Gtk::Container* cont, Gtk::Widget* w, bool increference = true); diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 0ac0b79f3..e3e1eadb4 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -29,13 +29,6 @@ #include #endif -namespace rtengine -{ - -extern const Settings* settings; - -} - const char* sTRCPreset[] = {"BT709_g2.2_s4.5", "sRGB_g2.4_s12.92", "linear_g1.0", "standard_g2.2", "standard_g1.8", "High_g1.3_s3.35", "Low_g2.6_s6.9", "Lab_g3.0s9.03296"}; //gamma free ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) diff --git a/rtgui/inspector.cc b/rtgui/inspector.cc index ad2e424ec..50fa933e1 100644 --- a/rtgui/inspector.cc +++ b/rtgui/inspector.cc @@ -22,6 +22,7 @@ #include "cursormanager.h" #include "guiutils.h" #include "options.h" +#include "rtscalable.h" #include "../rtengine/previewimage.h" InspectorBuffer::InspectorBuffer(const Glib::ustring &imagePath) : currTransform(0), fromRaw(false) diff --git a/rtgui/inspector.h b/rtgui/inspector.h index 681b90aa3..6b3b2350b 100644 --- a/rtgui/inspector.h +++ b/rtgui/inspector.h @@ -22,6 +22,8 @@ #include #include "guiutils.h" #include "../rtengine/coord.h" +#include "../rtengine/coord2d.h" +#include "../rtengine/rt_math.h" class InspectorBuffer { diff --git a/rtgui/labgrid.cc b/rtgui/labgrid.cc index b6393f6f5..fa452815e 100644 --- a/rtgui/labgrid.cc +++ b/rtgui/labgrid.cc @@ -39,6 +39,7 @@ #include "labgrid.h" #include "options.h" +#include "rtimage.h" using rtengine::Color; diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index a6694287f..e2cdb5649 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -587,7 +587,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) LensProfilePanel::LFDbHelper::LFDbHelper() { #ifdef _OPENMP -#pragma omp parallel sections if (!options.rtSettings.verbose) +#pragma omp parallel sections if (!settings->verbose) #endif { #ifdef _OPENMP @@ -609,7 +609,7 @@ LensProfilePanel::LFDbHelper::LFDbHelper() void LensProfilePanel::LFDbHelper::fillLensfunCameras() { - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << "LENSFUN, scanning cameras:" << std::endl; } @@ -619,7 +619,7 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras() for (const auto& c : camlist) { camnames[c.getMake()].insert(c.getModel()); - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << " found: " << c.getDisplayString().c_str() << std::endl; } } @@ -639,7 +639,7 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras() void LensProfilePanel::LFDbHelper::fillLensfunLenses() { - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << "LENSFUN, scanning lenses:" << std::endl; } @@ -651,7 +651,7 @@ void LensProfilePanel::LFDbHelper::fillLensfunLenses() const auto& make = l.getMake(); lenses[make].insert(name); - if (options.rtSettings.verbose) { + if (settings->verbose) { std::cout << " found: " << l.getDisplayString().c_str() << std::endl; } } diff --git a/rtgui/main.cc b/rtgui/main.cc index 997f20732..58fdd12dc 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -218,7 +218,7 @@ bool init_rt() extProgStore->init(); SoundManager::init(); - if ( !options.rtSettings.verbose ) { + if (!rtengine::settings->verbose) { TIFFSetWarningHandler (nullptr); // avoid annoying message boxes } diff --git a/rtgui/mycurve.cc b/rtgui/mycurve.cc index 6c00e3f56..7401570c8 100644 --- a/rtgui/mycurve.cc +++ b/rtgui/mycurve.cc @@ -20,6 +20,7 @@ #include "../rtengine/curves.h" #include #include +#include "rtscalable.h" MyCurve::MyCurve () : pipetteR(-1.f), diff --git a/rtgui/mycurve.h b/rtgui/mycurve.h index b5577e8dd..73f16d227 100644 --- a/rtgui/mycurve.h +++ b/rtgui/mycurve.h @@ -53,6 +53,7 @@ enum SnapToType { class MyCurveIdleHelper; class CurveEditor; +class EditDataProvider; class MyCurve : public Gtk::DrawingArea, public BackBuffer, public ColorCaller, public CoordinateProvider, public rtengine::NonCopyable { diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index d393c7200..9aa52c67e 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -23,6 +23,7 @@ #include "mydiagonalcurve.h" #include "editcallbacks.h" +#include "rtscalable.h" #include "../rtengine/curves.h" diff --git a/rtgui/myflatcurve.cc b/rtgui/myflatcurve.cc index ec46908ce..f01fb0066 100644 --- a/rtgui/myflatcurve.cc +++ b/rtgui/myflatcurve.cc @@ -23,6 +23,7 @@ #include "myflatcurve.h" #include "editcallbacks.h" +#include "rtscalable.h" #include "../rtengine/curves.h" diff --git a/rtgui/options.cc b/rtgui/options.cc index 8d8d52c83..164637eb2 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -28,6 +28,7 @@ #include "version.h" #include "../rtengine/procparams.h" +#include "../rtengine/rtengine.h" #ifdef _OPENMP #include diff --git a/rtgui/profilepanel.h b/rtgui/profilepanel.h index c5717d523..1efafe10b 100644 --- a/rtgui/profilepanel.h +++ b/rtgui/profilepanel.h @@ -27,9 +27,10 @@ #include "partialpastedlg.h" #include "guiutils.h" #include "profilestorecombobox.h" -#include "rtimage.h" #include "../rtengine/noncopyable.h" +class RTImage; + class ProfilePanel : public Gtk::Grid, public PParamsChangeListener, public ProfileStoreListener, public rtengine::NonCopyable { diff --git a/rtgui/rtimage.cc b/rtgui/rtimage.cc index ff27dbbd3..44078ed3b 100644 --- a/rtgui/rtimage.cc +++ b/rtgui/rtimage.cc @@ -23,7 +23,7 @@ #include #include -#include "options.h" +#include "../rtengine/settings.h" namespace { @@ -215,7 +215,7 @@ Cairo::RefPtr RTImage::createImgSurfFromFile (const Glib::u } */ } catch (const Glib::Exception& exception) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { std::cerr << "Failed to load image \"" << fileName << "\": " << exception.what() << std::endl; } } diff --git a/rtgui/rtscalable.cc b/rtgui/rtscalable.cc index b803ab270..a48a95fd2 100644 --- a/rtgui/rtscalable.cc +++ b/rtgui/rtscalable.cc @@ -23,9 +23,9 @@ #include #include #include -#include "options.h" #include "../rtengine/rt_math.h" +#include "options.h" double RTScalable::dpi = 0.; int RTScalable::scale = 0; @@ -102,7 +102,7 @@ void RTScalable::deleteDir(const Glib::ustring& path) error |= g_remove (Glib::build_filename (path, *entry).c_str()); } - if (error != 0 && options.rtSettings.verbose) { + if (error != 0 && rtengine::settings->verbose) { std::cerr << "Failed to delete all entries in '" << path << "': " << g_strerror(errno) << std::endl; } diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index fc9be32f7..3654e8af6 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -19,12 +19,12 @@ #include #include "rtwindow.h" -#include "options.h" #include "preferences.h" #include "iccprofilecreator.h" #include "cursormanager.h" #include "rtimage.h" #include "whitebalance.h" +#include "../rtengine/settings.h" float fontScale = 1.f; Glib::RefPtr cssForced; @@ -170,7 +170,7 @@ RTWindow::RTWindow () if (options.pseudoHiDPISupport) { fontScale = options.fontSize / (float)RTScalable::baseFontSize; } - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("\"Non-Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", options.fontSize, (int)initialGdkScale, fontScale); } } else { @@ -200,14 +200,14 @@ RTWindow::RTWindow () } if ((int)initialGdkScale > 1 || pt != RTScalable::baseFontSize) { css = Glib::ustring::compose ("* { font-size: %1pt}", pt * (int)initialGdkScale); - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("\"Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", pt, (int)initialGdkScale, fontScale); } } } } if (!css.empty()) { - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("CSS:\n%s\n\n", css.c_str()); } try { diff --git a/rtgui/shcselector.cc b/rtgui/shcselector.cc index 6137c3ec8..e8aca4071 100644 --- a/rtgui/shcselector.cc +++ b/rtgui/shcselector.cc @@ -17,9 +17,12 @@ * along with RawTherapee. If not, see . */ +#include + #include "shcselector.h" #include "multilangmgr.h" #include "mycurve.h" +#include "rtscalable.h" SHCSelector::SHCSelector() : movingPosition(-1), tmpX(0.0), tmpPos(0.0), wslider(0.0), cl(nullptr), coloredBar(RTO_Left2Right) { diff --git a/rtgui/thresholdselector.cc b/rtgui/thresholdselector.cc index b44425be4..35d08279c 100644 --- a/rtgui/thresholdselector.cc +++ b/rtgui/thresholdselector.cc @@ -24,6 +24,7 @@ #include "multilangmgr.h" #include "mycurve.h" +#include "rtscalable.h" #include "../rtengine/procparams.h" diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 531529d5c..09ffd11f7 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -19,7 +19,6 @@ #include "thumbnail.h" #include #include -#include "options.h" #include "../rtengine/mytime.h" #include #include @@ -29,6 +28,7 @@ #include #include "../rtengine/dynamicprofile.h" +#include "../rtengine/settings.h" #include "guiutils.h" #include "batchqueue.h" #include "extprog.h" @@ -299,7 +299,7 @@ rtengine::procparams::ProcParams* Thumbnail::createProcParamsForUpdate(bool retu // For the filename etc. do NOT use streams, since they are not UTF8 safe Glib::ustring cmdLine = options.CPBPath + Glib::ustring(" \"") + tmpFileName + Glib::ustring("\""); - if (options.rtSettings.verbose) { + if (rtengine::settings->verbose) { printf("Custom profile builder's command line: %s\n", Glib::ustring(cmdLine).c_str()); } diff --git a/rtgui/toolbar.cc b/rtgui/toolbar.cc index b8e0d64dc..38ade6566 100644 --- a/rtgui/toolbar.cc +++ b/rtgui/toolbar.cc @@ -20,6 +20,7 @@ #include "toolbar.h" #include "multilangmgr.h" #include "guiutils.h" +#include "rtimage.h" ToolBar::ToolBar () : showColPickers(true), listener (nullptr), pickerListener(nullptr) { diff --git a/rtgui/toolbar.h b/rtgui/toolbar.h index 52f4dcbd4..958aa80be 100644 --- a/rtgui/toolbar.h +++ b/rtgui/toolbar.h @@ -21,9 +21,10 @@ #include #include "toolenum.h" -#include "rtimage.h" #include "lockablecolorpicker.h" +class RTImage; + class ToolBarListener { diff --git a/rtgui/toolpanel.cc b/rtgui/toolpanel.cc index 27f68767e..b1282f523 100644 --- a/rtgui/toolpanel.cc +++ b/rtgui/toolpanel.cc @@ -19,6 +19,7 @@ #include "toolpanel.h" #include "toolpanelcoord.h" #include "guiutils.h" +#include "rtimage.h" #include "../rtengine/procparams.h" diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index deea489fe..1da43f6c0 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -19,6 +19,7 @@ #include "multilangmgr.h" #include "toolpanelcoord.h" #include "options.h" +#include "rtimage.h" #include "../rtengine/imagesource.h" #include "../rtengine/dfmanager.h" #include "../rtengine/ffmanager.h"