merge with dev
This commit is contained in:
commit
e79bb87c91
@ -106,6 +106,7 @@ set(RTENGINESOURCEFILES
|
||||
lj92.c
|
||||
loadinitial.cc
|
||||
myfile.cc
|
||||
panasonic_decoders.cc
|
||||
pdaflinesfilter.cc
|
||||
PF_correct_RT.cc
|
||||
pipettebuffer.cc
|
||||
|
@ -2142,6 +2142,11 @@ Camera constants:
|
||||
}
|
||||
},
|
||||
|
||||
{ // Quality B, per ISO info missing
|
||||
"make_model": [ "Panasonic DC-S1", "Panasonic DC-S1R" ],
|
||||
"ranges": { "white": 16225 }
|
||||
},
|
||||
|
||||
{ // Quality B, per ISO info missing
|
||||
"make_model": "PENTAX K-x",
|
||||
"dcraw_matrix": [ 8843,-2837,-625,-5025,12644,2668,-411,1234,7410 ], // adobe dcp d65
|
||||
|
@ -2688,93 +2688,6 @@ void CLASS canon_rmf_load_raw()
|
||||
maximum = curve[0x3ff];
|
||||
}
|
||||
|
||||
unsigned CLASS pana_bits_t::operator() (int nbits, unsigned *bytes)
|
||||
{
|
||||
/*RT static uchar buf[0x4000]; */
|
||||
/*RT static int vbits;*/
|
||||
int byte;
|
||||
|
||||
if (!nbits && !bytes) return vbits=0;
|
||||
if (!vbits) {
|
||||
fread (buf+load_flags, 1, 0x4000-load_flags, ifp);
|
||||
fread (buf, 1, load_flags, ifp);
|
||||
}
|
||||
if (encoding == 5) {
|
||||
for (byte = 0; byte < 16; byte++)
|
||||
{
|
||||
bytes[byte] = buf[vbits++];
|
||||
vbits &= 0x3FFF;
|
||||
}
|
||||
return 0;
|
||||
} else {
|
||||
vbits = (vbits - nbits) & 0x1ffff;
|
||||
byte = vbits >> 3 ^ 0x3ff0;
|
||||
return (buf[byte] | buf[byte+1] << 8) >> (vbits & 7) & ~(-1 << nbits);
|
||||
}
|
||||
}
|
||||
|
||||
void CLASS panasonic_load_raw()
|
||||
{
|
||||
pana_bits_t pana_bits(ifp,load_flags, RT_pana_info.encoding);
|
||||
int row, col, i, j, sh=0, pred[2], nonz[2];
|
||||
unsigned bytes[16] = {};
|
||||
ushort *raw_block_data;
|
||||
|
||||
pana_bits(0, 0);
|
||||
int enc_blck_size = RT_pana_info.bpp == 12 ? 10 : 9;
|
||||
if (RT_pana_info.encoding == 5) {
|
||||
for (row = 0; row < raw_height; row++)
|
||||
{
|
||||
raw_block_data = raw_image + row * raw_width;
|
||||
|
||||
for (col = 0; col < raw_width; col += enc_blck_size) {
|
||||
pana_bits(0, bytes);
|
||||
|
||||
if (RT_pana_info.bpp == 12) {
|
||||
raw_block_data[col] = ((bytes[1] & 0xF) << 8) + bytes[0];
|
||||
raw_block_data[col + 1] = 16 * bytes[2] + (bytes[1] >> 4);
|
||||
raw_block_data[col + 2] = ((bytes[4] & 0xF) << 8) + bytes[3];
|
||||
raw_block_data[col + 3] = 16 * bytes[5] + (bytes[4] >> 4);
|
||||
raw_block_data[col + 4] = ((bytes[7] & 0xF) << 8) + bytes[6];
|
||||
raw_block_data[col + 5] = 16 * bytes[8] + (bytes[7] >> 4);
|
||||
raw_block_data[col + 6] = ((bytes[10] & 0xF) << 8) + bytes[9];
|
||||
raw_block_data[col + 7] = 16 * bytes[11] + (bytes[10] >> 4);
|
||||
raw_block_data[col + 8] = ((bytes[13] & 0xF) << 8) + bytes[12];
|
||||
raw_block_data[col + 9] = 16 * bytes[14] + (bytes[13] >> 4);
|
||||
}
|
||||
else if (RT_pana_info.bpp == 14) {
|
||||
raw_block_data[col] = bytes[0] + ((bytes[1] & 0x3F) << 8);
|
||||
raw_block_data[col + 1] = (bytes[1] >> 6) + 4 * (bytes[2]) +
|
||||
((bytes[3] & 0xF) << 10);
|
||||
raw_block_data[col + 2] = (bytes[3] >> 4) + 16 * (bytes[4]) +
|
||||
((bytes[5] & 3) << 12);
|
||||
raw_block_data[col + 3] = ((bytes[5] & 0xFC) >> 2) + (bytes[6] << 6);
|
||||
raw_block_data[col + 4] = bytes[7] + ((bytes[8] & 0x3F) << 8);
|
||||
raw_block_data[col + 5] = (bytes[8] >> 6) + 4 * bytes[9] + ((bytes[10] & 0xF) << 10);
|
||||
raw_block_data[col + 6] = (bytes[10] >> 4) + 16 * bytes[11] + ((bytes[12] & 3) << 12);
|
||||
raw_block_data[col + 7] = ((bytes[12] & 0xFC) >> 2) + (bytes[13] << 6);
|
||||
raw_block_data[col + 8] = bytes[14] + ((bytes[15] & 0x3F) << 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (row=0; row < height; row++)
|
||||
for (col=0; col < raw_width; col++) {
|
||||
if ((i = col % 14) == 0)
|
||||
pred[0] = pred[1] = nonz[0] = nonz[1] = 0;
|
||||
if (i % 3 == 2) sh = 4 >> (3 - pana_bits(2));
|
||||
if (nonz[i & 1]) {
|
||||
if ((j = pana_bits(8))) {
|
||||
if ((pred[i & 1] -= 0x80 << sh) < 0 || sh == 4)
|
||||
pred[i & 1] &= ~(-1 << sh);
|
||||
pred[i & 1] += j << sh;
|
||||
}
|
||||
} else if ((nonz[i & 1] = pana_bits(8)) || i > 11)
|
||||
pred[i & 1] = nonz[i & 1] << 4 | pana_bits(4);
|
||||
if ((RAW(row,col) = pred[col & 1]) > 4098 && col < width) derror();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CLASS olympus_load_raw()
|
||||
{
|
||||
@ -10759,8 +10672,6 @@ void CLASS nikon_14bit_load_raw()
|
||||
free(buf);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/* RT: Delete from here */
|
||||
/*RT*/#undef SQR
|
||||
/*RT*/#undef MAX
|
||||
|
@ -411,6 +411,9 @@ private:
|
||||
unsigned encoding;
|
||||
};
|
||||
|
||||
void panasonicC6_load_raw();
|
||||
void panasonicC7_load_raw();
|
||||
|
||||
void canon_rmf_load_raw();
|
||||
void panasonic_load_raw();
|
||||
void olympus_load_raw();
|
||||
|
278
rtengine/panasonic_decoders.cc
Normal file
278
rtengine/panasonic_decoders.cc
Normal file
@ -0,0 +1,278 @@
|
||||
/*
|
||||
* This file is part of RawTherapee.
|
||||
*
|
||||
* RawTherapee 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* RawTherapee 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 RawTherapee. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include "dcraw.h"
|
||||
|
||||
// Code adapted from libraw
|
||||
/* -*- C++ -*-
|
||||
* Copyright 2019 LibRaw LLC (info@libraw.org)
|
||||
*
|
||||
LibRaw is free software; you can redistribute it and/or modify
|
||||
it under the terms of the one of two licenses as you choose:
|
||||
|
||||
1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
|
||||
(See file LICENSE.LGPL provided in LibRaw distribution archive for details).
|
||||
|
||||
2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
|
||||
(See file LICENSE.CDDL provided in LibRaw distribution archive for details).
|
||||
|
||||
*/
|
||||
|
||||
unsigned DCraw::pana_bits_t::operator() (int nbits, unsigned *bytes)
|
||||
{
|
||||
int byte;
|
||||
|
||||
if (!nbits && !bytes) {
|
||||
return vbits=0;
|
||||
}
|
||||
if (!vbits) {
|
||||
fread (buf+load_flags, 1, 0x4000-load_flags, ifp);
|
||||
fread (buf, 1, load_flags, ifp);
|
||||
}
|
||||
if (encoding == 5) {
|
||||
for (byte = 0; byte < 16; byte++)
|
||||
{
|
||||
bytes[byte] = buf[vbits++];
|
||||
vbits &= 0x3FFF;
|
||||
}
|
||||
return 0;
|
||||
} else {
|
||||
vbits = (vbits - nbits) & 0x1ffff;
|
||||
byte = vbits >> 3 ^ 0x3ff0;
|
||||
return (buf[byte] | buf[byte+1] << 8) >> (vbits & 7) & ~(-1 << nbits);
|
||||
}
|
||||
}
|
||||
|
||||
class pana_cs6_page_decoder
|
||||
{
|
||||
unsigned int pixelbuffer[14], lastoffset, maxoffset;
|
||||
unsigned char current, *buffer;
|
||||
public:
|
||||
pana_cs6_page_decoder(unsigned char *_buffer, unsigned int bsize)
|
||||
: lastoffset(0), maxoffset(bsize), current(0), buffer(_buffer)
|
||||
{
|
||||
}
|
||||
void read_page(); // will throw IO error if not enough space in buffer
|
||||
unsigned int nextpixel()
|
||||
{
|
||||
return current < 14 ? pixelbuffer[current++] : 0;
|
||||
}
|
||||
};
|
||||
|
||||
#define wbuffer(i) ((unsigned short)buffer[lastoffset + 15 - i])
|
||||
|
||||
void pana_cs6_page_decoder::read_page()
|
||||
{
|
||||
if (!buffer || (maxoffset - lastoffset < 16))
|
||||
;
|
||||
pixelbuffer[0] = (wbuffer(0) << 6) | (wbuffer(1) >> 2); // 14 bit
|
||||
pixelbuffer[1] = (((wbuffer(1) & 0x3) << 12) | (wbuffer(2) << 4) | (wbuffer(3) >> 4)) & 0x3fff;
|
||||
pixelbuffer[2] = (wbuffer(3) >> 2) & 0x3;
|
||||
pixelbuffer[3] = ((wbuffer(3) & 0x3) << 8) | wbuffer(4);
|
||||
pixelbuffer[4] = (wbuffer(5) << 2) | (wbuffer(6) >> 6);
|
||||
pixelbuffer[5] = ((wbuffer(6) & 0x3f) << 4) | (wbuffer(7) >> 4);
|
||||
pixelbuffer[6] = (wbuffer(7) >> 2) & 0x3;
|
||||
pixelbuffer[7] = ((wbuffer(7) & 0x3) << 8) | wbuffer(8);
|
||||
pixelbuffer[8] = ((wbuffer(9) << 2) & 0x3fc) | (wbuffer(10) >> 6);
|
||||
pixelbuffer[9] = ((wbuffer(10) << 4) | (wbuffer(11) >> 4)) & 0x3ff;
|
||||
pixelbuffer[10] = (wbuffer(11) >> 2) & 0x3;
|
||||
pixelbuffer[11] = ((wbuffer(11) & 0x3) << 8) | wbuffer(12);
|
||||
pixelbuffer[12] = (((wbuffer(13) << 2) & 0x3fc) | wbuffer(14) >> 6) & 0x3ff;
|
||||
pixelbuffer[13] = ((wbuffer(14) << 4) | (wbuffer(15) >> 4)) & 0x3ff;
|
||||
current = 0;
|
||||
lastoffset += 16;
|
||||
}
|
||||
#undef wbuffer
|
||||
|
||||
void DCraw::panasonic_load_raw()
|
||||
{
|
||||
int enc_blck_size = RT_pana_info.bpp == 12 ? 10 : 9;
|
||||
if (RT_pana_info.encoding == 5) {
|
||||
pana_bits_t pana_bits(ifp, load_flags, RT_pana_info.encoding);
|
||||
pana_bits(0, 0);
|
||||
unsigned bytes[16] = {};
|
||||
for (int row = 0; row < raw_height; ++row) {
|
||||
ushort* raw_block_data = raw_image + row * raw_width;
|
||||
|
||||
for (int col = 0; col < raw_width; col += enc_blck_size) {
|
||||
pana_bits(0, bytes);
|
||||
|
||||
if (RT_pana_info.bpp == 12) {
|
||||
raw_block_data[col] = ((bytes[1] & 0xF) << 8) + bytes[0];
|
||||
raw_block_data[col + 1] = 16 * bytes[2] + (bytes[1] >> 4);
|
||||
raw_block_data[col + 2] = ((bytes[4] & 0xF) << 8) + bytes[3];
|
||||
raw_block_data[col + 3] = 16 * bytes[5] + (bytes[4] >> 4);
|
||||
raw_block_data[col + 4] = ((bytes[7] & 0xF) << 8) + bytes[6];
|
||||
raw_block_data[col + 5] = 16 * bytes[8] + (bytes[7] >> 4);
|
||||
raw_block_data[col + 6] = ((bytes[10] & 0xF) << 8) + bytes[9];
|
||||
raw_block_data[col + 7] = 16 * bytes[11] + (bytes[10] >> 4);
|
||||
raw_block_data[col + 8] = ((bytes[13] & 0xF) << 8) + bytes[12];
|
||||
raw_block_data[col + 9] = 16 * bytes[14] + (bytes[13] >> 4);
|
||||
}
|
||||
else if (RT_pana_info.bpp == 14) {
|
||||
raw_block_data[col] = bytes[0] + ((bytes[1] & 0x3F) << 8);
|
||||
raw_block_data[col + 1] = (bytes[1] >> 6) + 4 * (bytes[2]) + ((bytes[3] & 0xF) << 10);
|
||||
raw_block_data[col + 2] = (bytes[3] >> 4) + 16 * (bytes[4]) + ((bytes[5] & 3) << 12);
|
||||
raw_block_data[col + 3] = ((bytes[5] & 0xFC) >> 2) + (bytes[6] << 6);
|
||||
raw_block_data[col + 4] = bytes[7] + ((bytes[8] & 0x3F) << 8);
|
||||
raw_block_data[col + 5] = (bytes[8] >> 6) + 4 * bytes[9] + ((bytes[10] & 0xF) << 10);
|
||||
raw_block_data[col + 6] = (bytes[10] >> 4) + 16 * bytes[11] + ((bytes[12] & 3) << 12);
|
||||
raw_block_data[col + 7] = ((bytes[12] & 0xFC) >> 2) + (bytes[13] << 6);
|
||||
raw_block_data[col + 8] = bytes[14] + ((bytes[15] & 0x3F) << 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (RT_pana_info.encoding == 6) {
|
||||
panasonicC6_load_raw();
|
||||
} else if (RT_pana_info.encoding == 7) {
|
||||
panasonicC7_load_raw();
|
||||
} else {
|
||||
pana_bits_t pana_bits(ifp, load_flags, RT_pana_info.encoding);
|
||||
pana_bits(0, 0);
|
||||
int sh = 0, pred[2], nonz[2];
|
||||
for (int row = 0; row < height; ++row) {
|
||||
for (int col = 0; col < raw_width; ++col) {
|
||||
int i;
|
||||
if ((i = col % 14) == 0) {
|
||||
pred[0] = pred[1] = nonz[0] = nonz[1] = 0;
|
||||
}
|
||||
if (i % 3 == 2) {
|
||||
sh = 4 >> (3 - pana_bits(2));
|
||||
}
|
||||
if (nonz[i & 1]) {
|
||||
int j;
|
||||
if ((j = pana_bits(8))) {
|
||||
if ((pred[i & 1] -= 0x80 << sh) < 0 || sh == 4) {
|
||||
pred[i & 1] &= ~(-1 << sh);
|
||||
}
|
||||
pred[i & 1] += j << sh;
|
||||
}
|
||||
} else if ((nonz[i & 1] = pana_bits(8)) || i > 11) {
|
||||
pred[i & 1] = nonz[i & 1] << 4 | pana_bits(4);
|
||||
}
|
||||
if ((raw_image[(row)*raw_width+(col)] = pred[col & 1]) > 4098 && col < width) {
|
||||
derror();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DCraw::panasonicC6_load_raw()
|
||||
{
|
||||
constexpr int rowstep = 16;
|
||||
const int blocksperrow = raw_width / 11;
|
||||
const int rowbytes = blocksperrow * 16;
|
||||
unsigned char *iobuf = (unsigned char *)malloc(rowbytes * rowstep);
|
||||
merror(iobuf, "panasonicC6_load_raw()");
|
||||
|
||||
for (int row = 0; row < raw_height - rowstep + 1; row += rowstep) {
|
||||
const int rowstoread = MIN(rowstep, raw_height - row);
|
||||
fread(iobuf, rowbytes, rowstoread, ifp);
|
||||
pana_cs6_page_decoder page(iobuf, rowbytes * rowstoread);
|
||||
for (int crow = 0, col = 0; crow < rowstoread; ++crow, col = 0) {
|
||||
unsigned short *rowptr = &raw_image[(row + crow) * raw_width];
|
||||
for (int rblock = 0; rblock < blocksperrow; rblock++) {
|
||||
page.read_page();
|
||||
unsigned oddeven[2] = {0, 0}, nonzero[2] = {0, 0};
|
||||
unsigned pmul = 0, pixel_base = 0;
|
||||
for (int pix = 0; pix < 11; ++pix) {
|
||||
if (pix % 3 == 2) {
|
||||
unsigned base = page.nextpixel();
|
||||
if (base > 3) {
|
||||
derror();
|
||||
}
|
||||
if (base == 3) {
|
||||
base = 4;
|
||||
}
|
||||
pixel_base = 0x200 << base;
|
||||
pmul = 1 << base;
|
||||
}
|
||||
unsigned epixel = page.nextpixel();
|
||||
if (oddeven[pix % 2]) {
|
||||
epixel *= pmul;
|
||||
if (pixel_base < 0x2000 && nonzero[pix % 2] > pixel_base) {
|
||||
epixel += nonzero[pix % 2] - pixel_base;
|
||||
}
|
||||
nonzero[pix % 2] = epixel;
|
||||
} else {
|
||||
oddeven[pix % 2] = epixel;
|
||||
if (epixel) {
|
||||
nonzero[pix % 2] = epixel;
|
||||
} else {
|
||||
epixel = nonzero[pix % 2];
|
||||
}
|
||||
}
|
||||
const unsigned spix = epixel - 0xf;
|
||||
if (spix <= 0xffff) {
|
||||
rowptr[col++] = spix & 0xffff;
|
||||
} else {
|
||||
epixel = (((signed int)(epixel + 0x7ffffff1)) >> 0x1f);
|
||||
rowptr[col++] = epixel & 0x3fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
free(iobuf);
|
||||
tiff_bps = RT_pana_info.bpp;
|
||||
}
|
||||
|
||||
void DCraw::panasonicC7_load_raw()
|
||||
{
|
||||
constexpr int rowstep = 16;
|
||||
const int pixperblock = RT_pana_info.bpp == 14 ? 9 : 10;
|
||||
const int rowbytes = raw_width / pixperblock * 16;
|
||||
|
||||
unsigned char *iobuf = (unsigned char *)malloc(rowbytes * rowstep);
|
||||
merror(iobuf, "panasonicC7_load_raw()");
|
||||
for (int row = 0; row < raw_height - rowstep + 1; row += rowstep) {
|
||||
const int rowstoread = MIN(rowstep, raw_height - row);
|
||||
fread (iobuf, rowbytes, rowstoread, ifp);
|
||||
unsigned char *bytes = iobuf;
|
||||
for (int crow = 0; crow < rowstoread; crow++) {
|
||||
ushort *rowptr = &raw_image[(row + crow) * raw_width];
|
||||
for (int col = 0; col < raw_width - pixperblock + 1; col += pixperblock, bytes += 16) {
|
||||
if (RT_pana_info.bpp == 14) {
|
||||
rowptr[col] = bytes[0] + ((bytes[1] & 0x3F) << 8);
|
||||
rowptr[col + 1] = (bytes[1] >> 6) + 4 * (bytes[2]) + ((bytes[3] & 0xF) << 10);
|
||||
rowptr[col + 2] = (bytes[3] >> 4) + 16 * (bytes[4]) + ((bytes[5] & 3) << 12);
|
||||
rowptr[col + 3] = ((bytes[5] & 0xFC) >> 2) + (bytes[6] << 6);
|
||||
rowptr[col + 4] = bytes[7] + ((bytes[8] & 0x3F) << 8);
|
||||
rowptr[col + 5] = (bytes[8] >> 6) + 4 * bytes[9] + ((bytes[10] & 0xF) << 10);
|
||||
rowptr[col + 6] = (bytes[10] >> 4) + 16 * bytes[11] + ((bytes[12] & 3) << 12);
|
||||
rowptr[col + 7] = ((bytes[12] & 0xFC) >> 2) + (bytes[13] << 6);
|
||||
rowptr[col + 8] = bytes[14] + ((bytes[15] & 0x3F) << 8);
|
||||
} else if (RT_pana_info.bpp == 12) { // have not seen in the wild yet
|
||||
rowptr[col] = ((bytes[1] & 0xF) << 8) + bytes[0];
|
||||
rowptr[col + 1] = 16 * bytes[2] + (bytes[1] >> 4);
|
||||
rowptr[col + 2] = ((bytes[4] & 0xF) << 8) + bytes[3];
|
||||
rowptr[col + 3] = 16 * bytes[5] + (bytes[4] >> 4);
|
||||
rowptr[col + 4] = ((bytes[7] & 0xF) << 8) + bytes[6];
|
||||
rowptr[col + 5] = 16 * bytes[8] + (bytes[7] >> 4);
|
||||
rowptr[col + 6] = ((bytes[10] & 0xF) << 8) + bytes[9];
|
||||
rowptr[col + 7] = 16 * bytes[11] + (bytes[10] >> 4);
|
||||
rowptr[col + 8] = ((bytes[13] & 0xF) << 8) + bytes[12];
|
||||
rowptr[col + 9] = 16 * bytes[14] + (bytes[13] >> 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
free(iobuf);
|
||||
tiff_bps = RT_pana_info.bpp;
|
||||
}
|
@ -19,7 +19,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "array2D.h"
|
||||
#include "coord.h"
|
||||
#include "iimage.h"
|
||||
|
||||
class EditDataProvider;
|
||||
|
@ -54,13 +54,13 @@ Interpreter stdInterpreter;
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
TagDirectory::TagDirectory ()
|
||||
: attribs (ifdAttribs), order (HOSTORDER), parent (nullptr) {}
|
||||
: attribs (ifdAttribs), order (HOSTORDER), parent (nullptr), parseJPEG(true) {}
|
||||
|
||||
TagDirectory::TagDirectory (TagDirectory* p, const TagAttrib* ta, ByteOrder border)
|
||||
: attribs (ta), order (border), parent (p) {}
|
||||
: attribs (ta), order (border), parent (p), parseJPEG(true) {}
|
||||
|
||||
TagDirectory::TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored)
|
||||
: attribs (ta), order (border), parent (p)
|
||||
TagDirectory::TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored, bool parseJpeg)
|
||||
: attribs (ta), order (border), parent (p), parseJPEG(parseJpeg)
|
||||
{
|
||||
|
||||
int numOfTags = get2 (f, order);
|
||||
@ -980,9 +980,10 @@ Tag::Tag (TagDirectory* p, FILE* f, int base)
|
||||
}
|
||||
}
|
||||
|
||||
if (tag == 0x002e) { // location of the embedded preview image in raw files of Panasonic cameras
|
||||
if (parent->getParseJpeg() && tag == 0x002e) { // location of the embedded preview image in raw files of Panasonic cameras
|
||||
ExifManager eManager(f, nullptr, true);
|
||||
const auto fpos = ftell(f);
|
||||
|
||||
if (fpos >= 0) {
|
||||
eManager.parseJPEG(fpos); // try to parse the exif data from the preview image
|
||||
|
||||
@ -1239,7 +1240,7 @@ defsubdirs:
|
||||
for (size_t j = 0, i = 0; j < count; j++, i++) {
|
||||
int newpos = base + toInt (j * 4, LONG);
|
||||
fseek (f, newpos, SEEK_SET);
|
||||
directory[i] = new TagDirectory (parent, f, base, attrib->subdirAttribs, order);
|
||||
directory[i] = new TagDirectory (parent, f, base, attrib->subdirAttribs, order, true, parent->getParseJpeg());
|
||||
}
|
||||
|
||||
// set the terminating NULL
|
||||
@ -1374,7 +1375,7 @@ bool Tag::parseMakerNote (FILE* f, int base, ByteOrder bom )
|
||||
value = new unsigned char[12];
|
||||
fread (value, 1, 12, f);
|
||||
directory = new TagDirectory*[2];
|
||||
directory[0] = new TagDirectory (parent, f, base, panasonicAttribs, bom);
|
||||
directory[0] = new TagDirectory (parent, f, base, panasonicAttribs, bom, true, parent->getParseJpeg());
|
||||
directory[1] = nullptr;
|
||||
} else {
|
||||
return false;
|
||||
@ -2777,7 +2778,7 @@ void ExifManager::parseStd (bool skipIgnored) {
|
||||
parse(false, skipIgnored);
|
||||
}
|
||||
|
||||
void ExifManager::parse (bool isRaw, bool skipIgnored)
|
||||
void ExifManager::parse (bool isRaw, bool skipIgnored, bool parseJpeg)
|
||||
{
|
||||
int ifdOffset = IFDOffset;
|
||||
|
||||
@ -2806,7 +2807,7 @@ void ExifManager::parse (bool isRaw, bool skipIgnored)
|
||||
fseek (f, rml->exifBase + ifdOffset, SEEK_SET);
|
||||
|
||||
// first read the IFD directory
|
||||
TagDirectory* root = new TagDirectory (nullptr, f, rml->exifBase, ifdAttribs, order, skipIgnored);
|
||||
TagDirectory* root = new TagDirectory (nullptr, f, rml->exifBase, ifdAttribs, order, skipIgnored, parseJpeg);
|
||||
|
||||
// fix ISO issue with nikon and panasonic cameras
|
||||
Tag* make = root->getTag ("Make");
|
||||
@ -3174,7 +3175,7 @@ void ExifManager::parseJPEG (int offset)
|
||||
rml.reset(new rtengine::RawMetaDataLocation(0));
|
||||
}
|
||||
rml->exifBase = tiffbase;
|
||||
parse (false);
|
||||
parse (false, true, false);
|
||||
if (rmlCreated) {
|
||||
rml.reset();
|
||||
}
|
||||
|
@ -119,11 +119,12 @@ protected:
|
||||
const TagAttrib* attribs; // descriptor table to decode the tags
|
||||
ByteOrder order; // byte order
|
||||
TagDirectory* parent; // parent directory (NULL if root)
|
||||
bool parseJPEG;
|
||||
static Glib::ustring getDumpKey (int tagID, const Glib::ustring &tagName);
|
||||
|
||||
public:
|
||||
TagDirectory ();
|
||||
TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored = true);
|
||||
TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored = true, bool parseJpeg = true);
|
||||
TagDirectory (TagDirectory* p, const TagAttrib* ta, ByteOrder border);
|
||||
virtual ~TagDirectory ();
|
||||
|
||||
@ -135,6 +136,10 @@ public:
|
||||
{
|
||||
return parent;
|
||||
}
|
||||
inline bool getParseJpeg() const
|
||||
{
|
||||
return parseJPEG;
|
||||
}
|
||||
TagDirectory* getRoot ();
|
||||
inline int getCount () const
|
||||
{
|
||||
@ -346,7 +351,7 @@ class ExifManager
|
||||
|
||||
Tag* saveCIFFMNTag (TagDirectory* root, int len, const char* name);
|
||||
void parseCIFF (int length, TagDirectory* root);
|
||||
void parse (bool isRaw, bool skipIgnored = true);
|
||||
void parse (bool isRaw, bool skipIgnored = true, bool parseJpeg = true);
|
||||
|
||||
public:
|
||||
FILE* f;
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "cachemanager.h"
|
||||
#include "thumbnail.h"
|
||||
#include "batchqueue.h"
|
||||
#include "batchqueueentry.h"
|
||||
#include "multilangmgr.h"
|
||||
#include "filecatalog.h"
|
||||
#include "batchqueuebuttonset.h"
|
||||
|
@ -21,7 +21,6 @@
|
||||
|
||||
#include <gtkmm.h>
|
||||
|
||||
#include "batchqueueentry.h"
|
||||
#include "lwbutton.h"
|
||||
#include "lwbuttonset.h"
|
||||
#include "threadutils.h"
|
||||
@ -30,6 +29,8 @@
|
||||
#include "../rtengine/rtengine.h"
|
||||
#include "../rtengine/noncopyable.h"
|
||||
|
||||
class BatchQueueEntry;
|
||||
|
||||
class BatchQueueListener
|
||||
{
|
||||
|
||||
|
@ -29,6 +29,7 @@
|
||||
class RTWindow;
|
||||
class FileCatalog;
|
||||
class Thumbnail;
|
||||
|
||||
class BatchQueuePanel : public Gtk::VBox,
|
||||
public BatchQueueListener,
|
||||
public FormatChangeListener
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class BayerPreProcess : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
class BayerPreProcess final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
{
|
||||
|
||||
protected:
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class BayerProcess :
|
||||
class BayerProcess final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public CheckBoxListener,
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "checkbox.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class BayerRAWExposure :
|
||||
class BayerRAWExposure final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public CheckBoxListener,
|
||||
|
@ -21,6 +21,8 @@
|
||||
|
||||
#include "blackwhite.h"
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "guiutils.h"
|
||||
#include "rtimage.h"
|
||||
#include "options.h"
|
||||
|
@ -22,13 +22,14 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "guiutils.h"
|
||||
#include "mycurve.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class DiagonalCurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class EditDataProvider;
|
||||
class FlatCurveEditor;
|
||||
|
||||
class BlackWhite final :
|
||||
public ToolParamBlock,
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class CACorrection :
|
||||
class CACorrection final:
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class ChMixer :
|
||||
class ChMixer final:
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
#include "toolpanel.h"
|
||||
|
||||
class CoarsePanel :
|
||||
class CoarsePanel final :
|
||||
public Gtk::HBox,
|
||||
public ToolPanel
|
||||
{
|
||||
|
@ -20,6 +20,8 @@
|
||||
|
||||
#include "colorappearance.h"
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "guiutils.h"
|
||||
#include "options.h"
|
||||
#include "rtimage.h"
|
||||
|
@ -22,11 +22,14 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class DiagonalCurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class CurveEditor;
|
||||
|
||||
class ColorAppearance final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
|
@ -2,6 +2,8 @@
|
||||
* This file is part of RawTherapee.
|
||||
*/
|
||||
#include "colortoning.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "mycurve.h"
|
||||
#include "rtimage.h"
|
||||
#include "eventmapper.h"
|
||||
|
@ -7,15 +7,19 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "guiutils.h"
|
||||
#include "labgrid.h"
|
||||
#include "thresholdadjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
#include "../rtengine/procparams.h"
|
||||
|
||||
class CurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class DiagonalCurveEditor;
|
||||
class FlatCurveEditor;
|
||||
class LabGrid;
|
||||
|
||||
class ColorToning final :
|
||||
public ToolParamBlock,
|
||||
public FoldableToolPanel,
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <string>
|
||||
#include "guiutils.h"
|
||||
#include "multilangmgr.h"
|
||||
#include "popuptogglebutton.h"
|
||||
#include "../rtengine/LUT.h"
|
||||
|
||||
#include <cstring>
|
||||
|
@ -20,7 +20,6 @@
|
||||
|
||||
#include "coloredbar.h"
|
||||
#include "editcallbacks.h"
|
||||
#include "popuptogglebutton.h"
|
||||
|
||||
#include "../rtengine/diagonalcurvetypes.h"
|
||||
#include "../rtengine/flatcurvetypes.h"
|
||||
@ -29,6 +28,7 @@
|
||||
|
||||
class CurveEditorGroup;
|
||||
class CurveEditorSubGroup;
|
||||
class PopUpToggleButton;
|
||||
|
||||
/*
|
||||
*********************** Curve Editor ***********************
|
||||
@ -143,7 +143,7 @@ public:
|
||||
*/
|
||||
|
||||
|
||||
class DiagonalCurveEditor : public CurveEditor
|
||||
class DiagonalCurveEditor final : public CurveEditor
|
||||
{
|
||||
|
||||
friend class DiagonalCurveEditorSubGroup;
|
||||
@ -179,7 +179,7 @@ public:
|
||||
*/
|
||||
|
||||
|
||||
class FlatCurveEditor : public CurveEditor
|
||||
class FlatCurveEditor final : public CurveEditor
|
||||
{
|
||||
friend class FlatCurveEditorSubGroup;
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "diagonalcurveeditorsubgroup.h"
|
||||
#include "flatcurveeditorsubgroup.h"
|
||||
#include "multilangmgr.h"
|
||||
#include "popuptogglebutton.h"
|
||||
#include "rtimage.h"
|
||||
#include "options.h"
|
||||
#include "pathutils.h"
|
||||
|
@ -41,7 +41,7 @@ class FlatCurveEditorSubGroup;
|
||||
* - to start a new line of curve button, use the 'newLine' method
|
||||
* - if you add more than one curve, you must add a "CurveEditor* ce" parameter to your listener
|
||||
*/
|
||||
class CurveEditorGroup : public Gtk::Grid, public CurveListener
|
||||
class CurveEditorGroup final : public Gtk::Grid, public CurveListener
|
||||
{
|
||||
|
||||
friend class CurveEditor;
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
// add other info here
|
||||
};
|
||||
|
||||
class DarkFrame :
|
||||
class DarkFrame final:
|
||||
public ToolParamBlock,
|
||||
public FoldableToolPanel
|
||||
{
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include <iomanip>
|
||||
|
||||
#include "defringe.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "options.h"
|
||||
|
||||
#include "../rtengine/color.h"
|
||||
|
@ -22,12 +22,14 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Defringe :
|
||||
class CurveEditorGroup;
|
||||
class FlatCurveEditor;
|
||||
|
||||
class Defringe final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel,
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Dehaze: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
class Dehaze final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
{
|
||||
private:
|
||||
Adjuster *strength;
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "diagonalcurveeditorsubgroup.h"
|
||||
#include "rtimage.h"
|
||||
#include "options.h"
|
||||
#include "popuptogglebutton.h"
|
||||
|
||||
#include "../rtengine/curves.h"
|
||||
|
||||
|
@ -21,6 +21,8 @@
|
||||
|
||||
#include "dirpyrdenoise.h"
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "editbuffer.h"
|
||||
#include "guiutils.h"
|
||||
#include "options.h"
|
||||
|
@ -22,11 +22,13 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class CurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class FlatCurveEditor;
|
||||
class EditDataProvider;
|
||||
|
||||
class DirPyrDenoise final :
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "thresholdadjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class DirPyrEqualizer :
|
||||
class DirPyrEqualizer final :
|
||||
public ToolParamBlock,
|
||||
public ThresholdAdjusterListener,
|
||||
public AdjusterListener,
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "lensgeomlistener.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Distortion :
|
||||
class Distortion final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -19,9 +19,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "editid.h"
|
||||
#include "../rtengine/coord.h"
|
||||
#include <cairomm/cairomm.h>
|
||||
|
||||
namespace rtengine {
|
||||
|
||||
struct Coord;
|
||||
|
||||
}
|
||||
|
||||
class EditDataProvider;
|
||||
class EditSubscriber;
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "../rtengine/imagesource.h"
|
||||
#include "../rtengine/iccstore.h"
|
||||
#include "batchqueue.h"
|
||||
#include "batchqueueentry.h"
|
||||
#include "soundman.h"
|
||||
#include "rtimage.h"
|
||||
#include "rtwindow.h"
|
||||
|
@ -21,7 +21,6 @@
|
||||
|
||||
#include <gtkmm.h>
|
||||
|
||||
#include "batchqueueentry.h"
|
||||
#include "filepanel.h"
|
||||
#include "histogrampanel.h"
|
||||
#include "history.h"
|
||||
@ -35,7 +34,9 @@
|
||||
#include "../rtengine/noncopyable.h"
|
||||
#include "../rtengine/rtengine.h"
|
||||
|
||||
class BatchQueueEntry;
|
||||
class EditorPanel;
|
||||
class FilePanel;
|
||||
class MyProgressBar;
|
||||
class Thumbnail;
|
||||
class ToolPanelCoordinator;
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class EdgePreservingDecompositionUI :
|
||||
class EdgePreservingDecompositionUI final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class FattalToneMapping: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
class FattalToneMapping final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
{
|
||||
protected:
|
||||
Adjuster *threshold;
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <cstring>
|
||||
#include <iomanip>
|
||||
|
||||
#include "cropguilistener.h"
|
||||
#include "cursormanager.h"
|
||||
#include "guiutils.h"
|
||||
#include "inspector.h"
|
||||
@ -28,6 +29,7 @@
|
||||
#include "threadutils.h"
|
||||
#include "thumbbrowserbase.h"
|
||||
#include "thumbnail.h"
|
||||
#include "toolbar.h"
|
||||
|
||||
#include "../rtengine/procparams.h"
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "renamedlg.h"
|
||||
#include "thumbimageupdater.h"
|
||||
#include "batchqueue.h"
|
||||
#include "batchqueueentry.h"
|
||||
#include "placesbrowser.h"
|
||||
#include "pathutils.h"
|
||||
#include "thumbnail.h"
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
#include <gtkmm.h>
|
||||
|
||||
#include "filebrowserentry.h"
|
||||
#include "lwbuttonset.h"
|
||||
|
||||
class FileBrowserEntry;
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "editcallbacks.h"
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
#include "wbprovider.h"
|
||||
|
||||
class FilmNegProvider
|
||||
{
|
||||
@ -36,7 +35,7 @@ public:
|
||||
virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array<float, 3>& newExps) = 0;
|
||||
};
|
||||
|
||||
class FilmNegative :
|
||||
class FilmNegative final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel,
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class ClutComboBox :
|
||||
class ClutComboBox final :
|
||||
public MyComboBox
|
||||
{
|
||||
public:
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "flatcurveeditorsubgroup.h"
|
||||
#include "rtimage.h"
|
||||
#include "options.h"
|
||||
#include "popuptogglebutton.h"
|
||||
|
||||
#include "../rtengine/curves.h"
|
||||
|
||||
|
@ -42,7 +42,7 @@ public:
|
||||
// add other info here
|
||||
};
|
||||
|
||||
class FlatField : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::FlatFieldAutoClipListener
|
||||
class FlatField final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::FlatFieldAutoClipListener
|
||||
{
|
||||
|
||||
protected:
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Gradient :
|
||||
class Gradient final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel,
|
||||
|
@ -18,6 +18,8 @@
|
||||
*/
|
||||
#include "hsvequalizer.h"
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "options.h"
|
||||
|
||||
#include "../rtengine/color.h"
|
||||
|
@ -22,12 +22,15 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class HSVEqualizer :
|
||||
class CurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class FlatCurveEditor;
|
||||
|
||||
class HSVEqualizer final :
|
||||
public ToolParamBlock,
|
||||
public FoldableToolPanel,
|
||||
public CurveListener,
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
virtual void saveInputICCReference(const Glib::ustring& fname, bool apply_wb) = 0;
|
||||
};
|
||||
|
||||
class ICMPanel :
|
||||
class ICMPanel final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -18,10 +18,9 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "cropguilistener.h"
|
||||
#include "toolbar.h"
|
||||
|
||||
class CropGUIListener;
|
||||
class Thumbnail;
|
||||
class ToolBar;
|
||||
class ImageAreaToolListener
|
||||
{
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class ImpulseDenoise :
|
||||
class ImpulseDenoise final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -20,6 +20,8 @@
|
||||
|
||||
#include "labcurve.h"
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "options.h"
|
||||
|
||||
#include "../rtengine/color.h"
|
||||
|
@ -22,13 +22,15 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class CurveEditorGroup;
|
||||
class DiagonalCurveEditor;
|
||||
class EditDataProvider;
|
||||
class FlatCurveEditor;
|
||||
|
||||
class LCurve :
|
||||
class LCurve final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel,
|
||||
|
@ -43,7 +43,7 @@
|
||||
#include "toolpanel.h"
|
||||
|
||||
|
||||
class LabGridArea: public Gtk::DrawingArea, public BackBuffer {
|
||||
class LabGridArea final : public Gtk::DrawingArea, public BackBuffer {
|
||||
private:
|
||||
rtengine::ProcEvent evt;
|
||||
Glib::ustring evtMsg;
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "lensgeomlistener.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class LensGeometry :
|
||||
class LensGeometry final :
|
||||
public ToolParamBlock,
|
||||
public FoldableToolPanel
|
||||
{
|
||||
|
@ -21,7 +21,6 @@
|
||||
#include <gtkmm.h>
|
||||
|
||||
#include "guiutils.h"
|
||||
#include "lensgeom.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class LensProfilePanel final :
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class LocalContrast: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
class LocalContrast final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
{
|
||||
private:
|
||||
Adjuster *radius;
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class PCVignette :
|
||||
class PCVignette final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class PerspCorrection :
|
||||
class PerspCorrection final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -18,10 +18,14 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <glibmm/ustring.h>
|
||||
|
||||
struct ParamsEdited;
|
||||
|
||||
namespace Glib
|
||||
{
|
||||
|
||||
class ustring;
|
||||
|
||||
}
|
||||
namespace rtengine
|
||||
{
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class PreProcess :
|
||||
class PreProcess final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -18,8 +18,12 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <glibmm/ustring.h>
|
||||
namespace Glib
|
||||
{
|
||||
|
||||
class ustring;
|
||||
|
||||
}
|
||||
|
||||
namespace rtengine
|
||||
{
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "thresholdadjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class PrSharpening :
|
||||
class PrSharpening final :
|
||||
public ToolParamBlock,
|
||||
public ThresholdAdjusterListener,
|
||||
public AdjusterListener,
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "checkbox.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class RAWCACorr :
|
||||
class RAWCACorr final:
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public CheckBoxListener,
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class RAWExposure :
|
||||
class RAWExposure final:
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
@ -32,8 +32,6 @@ class RAWExposure :
|
||||
protected:
|
||||
Adjuster* PexPos;
|
||||
|
||||
private:
|
||||
// Gtk::CheckButton* PextwoGreen;
|
||||
public:
|
||||
|
||||
RAWExposure ();
|
||||
|
@ -2,6 +2,9 @@
|
||||
* This file is part of RawTherapee.
|
||||
*/
|
||||
#include "retinex.h"
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "mycurve.h"
|
||||
#include "rtimage.h"
|
||||
#include "options.h"
|
||||
|
@ -7,13 +7,18 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curvelistener.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "guiutils.h"
|
||||
#include "thresholdadjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Retinex :
|
||||
class CurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class DiagonalCurveEditor;
|
||||
class FlatCurveEditor;
|
||||
|
||||
class Retinex final :
|
||||
public ToolParamBlock,
|
||||
public FoldableToolPanel,
|
||||
public rtengine::RetinexListener,
|
||||
|
@ -18,6 +18,8 @@
|
||||
*/
|
||||
#include "rgbcurves.h"
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "options.h"
|
||||
|
||||
#include "../rtengine/procparams.h"
|
||||
|
@ -22,11 +22,13 @@
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class RGBCurves :
|
||||
class CurveEditorGroup;
|
||||
class DiagonalCurveEditor;
|
||||
|
||||
class RGBCurves final :
|
||||
public ToolParamBlock,
|
||||
public FoldableToolPanel,
|
||||
public CurveListener,
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "rotate.h"
|
||||
|
||||
#include "guiutils.h"
|
||||
#include "lensgeomlistener.h"
|
||||
#include "rtimage.h"
|
||||
|
||||
#include "../rtengine/procparams.h"
|
||||
|
@ -21,10 +21,10 @@
|
||||
#include <gtkmm.h>
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "lensgeomlistener.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Rotate :
|
||||
class LensGeomListener;
|
||||
class Rotate final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "whitebalance.h"
|
||||
#include "../rtengine/settings.h"
|
||||
#include "batchqueuepanel.h"
|
||||
#include "batchqueueentry.h"
|
||||
#include "editorpanel.h"
|
||||
#include "filepanel.h"
|
||||
#include "filmsimulation.h"
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
#include "toolpanel.h"
|
||||
|
||||
class SensorBayer :
|
||||
class SensorBayer final :
|
||||
public ToolParamBlock,
|
||||
public FoldableToolPanel
|
||||
{
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
#include "toolpanel.h"
|
||||
|
||||
class SensorXTrans :
|
||||
class SensorXTrans final:
|
||||
public ToolParamBlock,
|
||||
public FoldableToolPanel
|
||||
{
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class ShadowsHighlights :
|
||||
class ShadowsHighlights final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class SharpenEdge :
|
||||
class SharpenEdge final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "thresholdadjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Sharpening :
|
||||
class Sharpening final:
|
||||
public ToolParamBlock,
|
||||
public ThresholdAdjusterListener,
|
||||
public AdjusterListener,
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class SharpenMicro :
|
||||
class SharpenMicro final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class SoftLight: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
class SoftLight final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||
{
|
||||
private:
|
||||
Adjuster *strength;
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "options.h"
|
||||
#include "rtscalable.h"
|
||||
#include "thumbbrowserbase.h"
|
||||
#include "thumbbrowserentrybase.h"
|
||||
|
||||
#include "../rtengine/rt_math.h"
|
||||
|
||||
|
@ -24,13 +24,13 @@
|
||||
|
||||
#include "guiutils.h"
|
||||
#include "options.h"
|
||||
#include "thumbbrowserentrybase.h"
|
||||
|
||||
/*
|
||||
* Class handling the list of ThumbBrowserEntry objects and their position in it's allocated space
|
||||
*/
|
||||
|
||||
class Inspector;
|
||||
class ThumbBrowserEntryBase;
|
||||
|
||||
class ThumbBrowserBase :
|
||||
public Gtk::Grid
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <gtkmm.h>
|
||||
|
||||
#include "thumbimageupdater.h"
|
||||
#include "thumbbrowserentrybase.h"
|
||||
|
||||
#include "guiutils.h"
|
||||
#include "threadutils.h"
|
||||
|
@ -20,7 +20,6 @@
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#include "thumbbrowserentrybase.h"
|
||||
|
||||
#include "../rtengine/noncopyable.h"
|
||||
|
||||
@ -36,6 +35,9 @@ namespace procparams
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class ThumbBrowserEntryBase;
|
||||
|
||||
class ThumbImageUpdateListener
|
||||
{
|
||||
public:
|
||||
|
@ -23,6 +23,8 @@
|
||||
#include "tonecurve.h"
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "eventmapper.h"
|
||||
#include "ppversion.h"
|
||||
#include "options.h"
|
||||
|
@ -21,14 +21,16 @@
|
||||
#include <gtkmm.h>
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class CurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class DiagonalCurveEditor;
|
||||
class EditDataProvider;
|
||||
|
||||
class ToneCurve :
|
||||
class ToneCurve final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel,
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
virtual void editModeSwitchedOff() = 0;
|
||||
};
|
||||
|
||||
class ToolBar : public Gtk::HBox
|
||||
class ToolBar final : public Gtk::HBox
|
||||
{
|
||||
private:
|
||||
std::unique_ptr<RTImage> handimg;
|
||||
|
@ -41,9 +41,6 @@ class ProcParams;
|
||||
}
|
||||
}
|
||||
|
||||
class FoldableToolPanel;
|
||||
class ToolPanel;
|
||||
|
||||
class ToolPanelListener
|
||||
{
|
||||
public:
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "metadatapanel.h"
|
||||
#include "options.h"
|
||||
#include "rtimage.h"
|
||||
|
||||
#include "../rtengine/imagesource.h"
|
||||
#include "../rtengine/dfmanager.h"
|
||||
#include "../rtengine/ffmanager.h"
|
||||
|
@ -18,6 +18,9 @@
|
||||
*/
|
||||
|
||||
#include "vibrance.h"
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "options.h"
|
||||
#include "../rtengine/color.h"
|
||||
|
||||
|
@ -21,12 +21,14 @@
|
||||
#include <gtkmm.h>
|
||||
|
||||
#include "adjuster.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "thresholdadjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Vibrance :
|
||||
class CurveEditorGroup;
|
||||
class DiagonalCurveEditor;
|
||||
|
||||
class Vibrance final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public ThresholdCurveProvider,
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class Vignetting :
|
||||
class Vignetting final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include "wavelet.h"
|
||||
#include <cmath>
|
||||
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "editcallbacks.h"
|
||||
#include "guiutils.h"
|
||||
#include "rtimage.h"
|
||||
|
@ -22,15 +22,18 @@
|
||||
#include <gtkmm.h>
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "curvelistener.h"
|
||||
#include "thresholdadjuster.h"
|
||||
#include "colorprovider.h"
|
||||
#include "guiutils.h"
|
||||
|
||||
class CurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class DiagonalCurveEditor;
|
||||
class EditDataProvider;
|
||||
class FlatCurveEditor;
|
||||
|
||||
class Wavelet :
|
||||
class Wavelet final :
|
||||
public ToolParamBlock,
|
||||
public ThresholdAdjusterListener,
|
||||
public AdjusterListener,
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
virtual void spotWBRequested(int size) = 0;
|
||||
};
|
||||
|
||||
class WhiteBalance : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::AutoWBListener
|
||||
class WhiteBalance final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::AutoWBListener
|
||||
{
|
||||
|
||||
enum WB_LabelType {
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "guiutils.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class XTransProcess :
|
||||
class XTransProcess final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public CheckBoxListener,
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "adjuster.h"
|
||||
#include "toolpanel.h"
|
||||
|
||||
class XTransRAWExposure :
|
||||
class XTransRAWExposure final :
|
||||
public ToolParamBlock,
|
||||
public AdjusterListener,
|
||||
public FoldableToolPanel
|
||||
|
Loading…
x
Reference in New Issue
Block a user