merge with dev
This commit is contained in:
commit
e79bb87c91
@ -106,6 +106,7 @@ set(RTENGINESOURCEFILES
|
|||||||
lj92.c
|
lj92.c
|
||||||
loadinitial.cc
|
loadinitial.cc
|
||||||
myfile.cc
|
myfile.cc
|
||||||
|
panasonic_decoders.cc
|
||||||
pdaflinesfilter.cc
|
pdaflinesfilter.cc
|
||||||
PF_correct_RT.cc
|
PF_correct_RT.cc
|
||||||
pipettebuffer.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
|
{ // Quality B, per ISO info missing
|
||||||
"make_model": "PENTAX K-x",
|
"make_model": "PENTAX K-x",
|
||||||
"dcraw_matrix": [ 8843,-2837,-625,-5025,12644,2668,-411,1234,7410 ], // adobe dcp d65
|
"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];
|
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()
|
void CLASS olympus_load_raw()
|
||||||
{
|
{
|
||||||
@ -10759,8 +10672,6 @@ void CLASS nikon_14bit_load_raw()
|
|||||||
free(buf);
|
free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/* RT: Delete from here */
|
/* RT: Delete from here */
|
||||||
/*RT*/#undef SQR
|
/*RT*/#undef SQR
|
||||||
/*RT*/#undef MAX
|
/*RT*/#undef MAX
|
||||||
|
@ -411,6 +411,9 @@ private:
|
|||||||
unsigned encoding;
|
unsigned encoding;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void panasonicC6_load_raw();
|
||||||
|
void panasonicC7_load_raw();
|
||||||
|
|
||||||
void canon_rmf_load_raw();
|
void canon_rmf_load_raw();
|
||||||
void panasonic_load_raw();
|
void panasonic_load_raw();
|
||||||
void olympus_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
|
#pragma once
|
||||||
|
|
||||||
#include "array2D.h"
|
#include "array2D.h"
|
||||||
#include "coord.h"
|
|
||||||
#include "iimage.h"
|
#include "iimage.h"
|
||||||
|
|
||||||
class EditDataProvider;
|
class EditDataProvider;
|
||||||
|
@ -54,13 +54,13 @@ Interpreter stdInterpreter;
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
TagDirectory::TagDirectory ()
|
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)
|
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)
|
TagDirectory::TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored, bool parseJpeg)
|
||||||
: attribs (ta), order (border), parent (p)
|
: attribs (ta), order (border), parent (p), parseJPEG(parseJpeg)
|
||||||
{
|
{
|
||||||
|
|
||||||
int numOfTags = get2 (f, order);
|
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);
|
ExifManager eManager(f, nullptr, true);
|
||||||
const auto fpos = ftell(f);
|
const auto fpos = ftell(f);
|
||||||
|
|
||||||
if (fpos >= 0) {
|
if (fpos >= 0) {
|
||||||
eManager.parseJPEG(fpos); // try to parse the exif data from the preview image
|
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++) {
|
for (size_t j = 0, i = 0; j < count; j++, i++) {
|
||||||
int newpos = base + toInt (j * 4, LONG);
|
int newpos = base + toInt (j * 4, LONG);
|
||||||
fseek (f, newpos, SEEK_SET);
|
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
|
// set the terminating NULL
|
||||||
@ -1374,7 +1375,7 @@ bool Tag::parseMakerNote (FILE* f, int base, ByteOrder bom )
|
|||||||
value = new unsigned char[12];
|
value = new unsigned char[12];
|
||||||
fread (value, 1, 12, f);
|
fread (value, 1, 12, f);
|
||||||
directory = new TagDirectory*[2];
|
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;
|
directory[1] = nullptr;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@ -2777,7 +2778,7 @@ void ExifManager::parseStd (bool skipIgnored) {
|
|||||||
parse(false, skipIgnored);
|
parse(false, skipIgnored);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExifManager::parse (bool isRaw, bool skipIgnored)
|
void ExifManager::parse (bool isRaw, bool skipIgnored, bool parseJpeg)
|
||||||
{
|
{
|
||||||
int ifdOffset = IFDOffset;
|
int ifdOffset = IFDOffset;
|
||||||
|
|
||||||
@ -2806,7 +2807,7 @@ void ExifManager::parse (bool isRaw, bool skipIgnored)
|
|||||||
fseek (f, rml->exifBase + ifdOffset, SEEK_SET);
|
fseek (f, rml->exifBase + ifdOffset, SEEK_SET);
|
||||||
|
|
||||||
// first read the IFD directory
|
// 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
|
// fix ISO issue with nikon and panasonic cameras
|
||||||
Tag* make = root->getTag ("Make");
|
Tag* make = root->getTag ("Make");
|
||||||
@ -3174,7 +3175,7 @@ void ExifManager::parseJPEG (int offset)
|
|||||||
rml.reset(new rtengine::RawMetaDataLocation(0));
|
rml.reset(new rtengine::RawMetaDataLocation(0));
|
||||||
}
|
}
|
||||||
rml->exifBase = tiffbase;
|
rml->exifBase = tiffbase;
|
||||||
parse (false);
|
parse (false, true, false);
|
||||||
if (rmlCreated) {
|
if (rmlCreated) {
|
||||||
rml.reset();
|
rml.reset();
|
||||||
}
|
}
|
||||||
|
@ -119,11 +119,12 @@ protected:
|
|||||||
const TagAttrib* attribs; // descriptor table to decode the tags
|
const TagAttrib* attribs; // descriptor table to decode the tags
|
||||||
ByteOrder order; // byte order
|
ByteOrder order; // byte order
|
||||||
TagDirectory* parent; // parent directory (NULL if root)
|
TagDirectory* parent; // parent directory (NULL if root)
|
||||||
|
bool parseJPEG;
|
||||||
static Glib::ustring getDumpKey (int tagID, const Glib::ustring &tagName);
|
static Glib::ustring getDumpKey (int tagID, const Glib::ustring &tagName);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TagDirectory ();
|
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);
|
TagDirectory (TagDirectory* p, const TagAttrib* ta, ByteOrder border);
|
||||||
virtual ~TagDirectory ();
|
virtual ~TagDirectory ();
|
||||||
|
|
||||||
@ -135,6 +136,10 @@ public:
|
|||||||
{
|
{
|
||||||
return parent;
|
return parent;
|
||||||
}
|
}
|
||||||
|
inline bool getParseJpeg() const
|
||||||
|
{
|
||||||
|
return parseJPEG;
|
||||||
|
}
|
||||||
TagDirectory* getRoot ();
|
TagDirectory* getRoot ();
|
||||||
inline int getCount () const
|
inline int getCount () const
|
||||||
{
|
{
|
||||||
@ -346,7 +351,7 @@ class ExifManager
|
|||||||
|
|
||||||
Tag* saveCIFFMNTag (TagDirectory* root, int len, const char* name);
|
Tag* saveCIFFMNTag (TagDirectory* root, int len, const char* name);
|
||||||
void parseCIFF (int length, TagDirectory* root);
|
void parseCIFF (int length, TagDirectory* root);
|
||||||
void parse (bool isRaw, bool skipIgnored = true);
|
void parse (bool isRaw, bool skipIgnored = true, bool parseJpeg = true);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FILE* f;
|
FILE* f;
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "cachemanager.h"
|
#include "cachemanager.h"
|
||||||
#include "thumbnail.h"
|
#include "thumbnail.h"
|
||||||
#include "batchqueue.h"
|
#include "batchqueue.h"
|
||||||
|
#include "batchqueueentry.h"
|
||||||
#include "multilangmgr.h"
|
#include "multilangmgr.h"
|
||||||
#include "filecatalog.h"
|
#include "filecatalog.h"
|
||||||
#include "batchqueuebuttonset.h"
|
#include "batchqueuebuttonset.h"
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
|
|
||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
|
||||||
#include "batchqueueentry.h"
|
|
||||||
#include "lwbutton.h"
|
#include "lwbutton.h"
|
||||||
#include "lwbuttonset.h"
|
#include "lwbuttonset.h"
|
||||||
#include "threadutils.h"
|
#include "threadutils.h"
|
||||||
@ -30,6 +29,8 @@
|
|||||||
#include "../rtengine/rtengine.h"
|
#include "../rtengine/rtengine.h"
|
||||||
#include "../rtengine/noncopyable.h"
|
#include "../rtengine/noncopyable.h"
|
||||||
|
|
||||||
|
class BatchQueueEntry;
|
||||||
|
|
||||||
class BatchQueueListener
|
class BatchQueueListener
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
class RTWindow;
|
class RTWindow;
|
||||||
class FileCatalog;
|
class FileCatalog;
|
||||||
class Thumbnail;
|
class Thumbnail;
|
||||||
|
|
||||||
class BatchQueuePanel : public Gtk::VBox,
|
class BatchQueuePanel : public Gtk::VBox,
|
||||||
public BatchQueueListener,
|
public BatchQueueListener,
|
||||||
public FormatChangeListener
|
public FormatChangeListener
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class BayerPreProcess : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
class BayerPreProcess final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||||
{
|
{
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class BayerProcess :
|
class BayerProcess final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public CheckBoxListener,
|
public CheckBoxListener,
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "checkbox.h"
|
#include "checkbox.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class BayerRAWExposure :
|
class BayerRAWExposure final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public CheckBoxListener,
|
public CheckBoxListener,
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include "blackwhite.h"
|
#include "blackwhite.h"
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
@ -22,13 +22,14 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "mycurve.h"
|
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
|
class DiagonalCurveEditor;
|
||||||
|
class CurveEditorGroup;
|
||||||
class EditDataProvider;
|
class EditDataProvider;
|
||||||
|
class FlatCurveEditor;
|
||||||
|
|
||||||
class BlackWhite final :
|
class BlackWhite final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class CACorrection :
|
class CACorrection final:
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class ChMixer :
|
class ChMixer final:
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class CoarsePanel :
|
class CoarsePanel final :
|
||||||
public Gtk::HBox,
|
public Gtk::HBox,
|
||||||
public ToolPanel
|
public ToolPanel
|
||||||
{
|
{
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
#include "colorappearance.h"
|
#include "colorappearance.h"
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
|
@ -22,11 +22,14 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
|
class DiagonalCurveEditor;
|
||||||
|
class CurveEditorGroup;
|
||||||
|
class CurveEditor;
|
||||||
|
|
||||||
class ColorAppearance final :
|
class ColorAppearance final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
* This file is part of RawTherapee.
|
* This file is part of RawTherapee.
|
||||||
*/
|
*/
|
||||||
#include "colortoning.h"
|
#include "colortoning.h"
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "mycurve.h"
|
#include "mycurve.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "eventmapper.h"
|
#include "eventmapper.h"
|
||||||
|
@ -7,15 +7,19 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "labgrid.h"
|
|
||||||
#include "thresholdadjuster.h"
|
#include "thresholdadjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
#include "../rtengine/procparams.h"
|
#include "../rtengine/procparams.h"
|
||||||
|
|
||||||
|
class CurveEditor;
|
||||||
|
class CurveEditorGroup;
|
||||||
|
class DiagonalCurveEditor;
|
||||||
|
class FlatCurveEditor;
|
||||||
|
class LabGrid;
|
||||||
|
|
||||||
class ColorToning final :
|
class ColorToning final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "multilangmgr.h"
|
#include "multilangmgr.h"
|
||||||
|
#include "popuptogglebutton.h"
|
||||||
#include "../rtengine/LUT.h"
|
#include "../rtengine/LUT.h"
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
|
|
||||||
#include "coloredbar.h"
|
#include "coloredbar.h"
|
||||||
#include "editcallbacks.h"
|
#include "editcallbacks.h"
|
||||||
#include "popuptogglebutton.h"
|
|
||||||
|
|
||||||
#include "../rtengine/diagonalcurvetypes.h"
|
#include "../rtengine/diagonalcurvetypes.h"
|
||||||
#include "../rtengine/flatcurvetypes.h"
|
#include "../rtengine/flatcurvetypes.h"
|
||||||
@ -29,6 +28,7 @@
|
|||||||
|
|
||||||
class CurveEditorGroup;
|
class CurveEditorGroup;
|
||||||
class CurveEditorSubGroup;
|
class CurveEditorSubGroup;
|
||||||
|
class PopUpToggleButton;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*********************** Curve Editor ***********************
|
*********************** Curve Editor ***********************
|
||||||
@ -143,7 +143,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class DiagonalCurveEditor : public CurveEditor
|
class DiagonalCurveEditor final : public CurveEditor
|
||||||
{
|
{
|
||||||
|
|
||||||
friend class DiagonalCurveEditorSubGroup;
|
friend class DiagonalCurveEditorSubGroup;
|
||||||
@ -179,7 +179,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class FlatCurveEditor : public CurveEditor
|
class FlatCurveEditor final : public CurveEditor
|
||||||
{
|
{
|
||||||
friend class FlatCurveEditorSubGroup;
|
friend class FlatCurveEditorSubGroup;
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "diagonalcurveeditorsubgroup.h"
|
#include "diagonalcurveeditorsubgroup.h"
|
||||||
#include "flatcurveeditorsubgroup.h"
|
#include "flatcurveeditorsubgroup.h"
|
||||||
#include "multilangmgr.h"
|
#include "multilangmgr.h"
|
||||||
|
#include "popuptogglebutton.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "pathutils.h"
|
#include "pathutils.h"
|
||||||
|
@ -41,7 +41,7 @@ class FlatCurveEditorSubGroup;
|
|||||||
* - to start a new line of curve button, use the 'newLine' method
|
* - 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
|
* - 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;
|
friend class CurveEditor;
|
||||||
|
@ -41,7 +41,7 @@ public:
|
|||||||
// add other info here
|
// add other info here
|
||||||
};
|
};
|
||||||
|
|
||||||
class DarkFrame :
|
class DarkFrame final:
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
{
|
{
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
|
||||||
#include "defringe.h"
|
#include "defringe.h"
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
|
||||||
#include "../rtengine/color.h"
|
#include "../rtengine/color.h"
|
||||||
|
@ -22,12 +22,14 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Defringe :
|
class CurveEditorGroup;
|
||||||
|
class FlatCurveEditor;
|
||||||
|
|
||||||
|
class Defringe final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Dehaze: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
class Dehaze final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
Adjuster *strength;
|
Adjuster *strength;
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include "diagonalcurveeditorsubgroup.h"
|
#include "diagonalcurveeditorsubgroup.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
#include "popuptogglebutton.h"
|
||||||
|
|
||||||
#include "../rtengine/curves.h"
|
#include "../rtengine/curves.h"
|
||||||
|
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include "dirpyrdenoise.h"
|
#include "dirpyrdenoise.h"
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "editbuffer.h"
|
#include "editbuffer.h"
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
@ -22,11 +22,13 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
|
class CurveEditor;
|
||||||
|
class CurveEditorGroup;
|
||||||
|
class FlatCurveEditor;
|
||||||
class EditDataProvider;
|
class EditDataProvider;
|
||||||
|
|
||||||
class DirPyrDenoise final :
|
class DirPyrDenoise final :
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "thresholdadjuster.h"
|
#include "thresholdadjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class DirPyrEqualizer :
|
class DirPyrEqualizer final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public ThresholdAdjusterListener,
|
public ThresholdAdjusterListener,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "lensgeomlistener.h"
|
#include "lensgeomlistener.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Distortion :
|
class Distortion final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -19,9 +19,14 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "editid.h"
|
#include "editid.h"
|
||||||
#include "../rtengine/coord.h"
|
|
||||||
#include <cairomm/cairomm.h>
|
#include <cairomm/cairomm.h>
|
||||||
|
|
||||||
|
namespace rtengine {
|
||||||
|
|
||||||
|
struct Coord;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
class EditDataProvider;
|
class EditDataProvider;
|
||||||
class EditSubscriber;
|
class EditSubscriber;
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "../rtengine/imagesource.h"
|
#include "../rtengine/imagesource.h"
|
||||||
#include "../rtengine/iccstore.h"
|
#include "../rtengine/iccstore.h"
|
||||||
#include "batchqueue.h"
|
#include "batchqueue.h"
|
||||||
|
#include "batchqueueentry.h"
|
||||||
#include "soundman.h"
|
#include "soundman.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "rtwindow.h"
|
#include "rtwindow.h"
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
|
|
||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
|
||||||
#include "batchqueueentry.h"
|
|
||||||
#include "filepanel.h"
|
#include "filepanel.h"
|
||||||
#include "histogrampanel.h"
|
#include "histogrampanel.h"
|
||||||
#include "history.h"
|
#include "history.h"
|
||||||
@ -35,7 +34,9 @@
|
|||||||
#include "../rtengine/noncopyable.h"
|
#include "../rtengine/noncopyable.h"
|
||||||
#include "../rtengine/rtengine.h"
|
#include "../rtengine/rtengine.h"
|
||||||
|
|
||||||
|
class BatchQueueEntry;
|
||||||
class EditorPanel;
|
class EditorPanel;
|
||||||
|
class FilePanel;
|
||||||
class MyProgressBar;
|
class MyProgressBar;
|
||||||
class Thumbnail;
|
class Thumbnail;
|
||||||
class ToolPanelCoordinator;
|
class ToolPanelCoordinator;
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class EdgePreservingDecompositionUI :
|
class EdgePreservingDecompositionUI final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class FattalToneMapping: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
class FattalToneMapping final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
Adjuster *threshold;
|
Adjuster *threshold;
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
|
||||||
|
#include "cropguilistener.h"
|
||||||
#include "cursormanager.h"
|
#include "cursormanager.h"
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "inspector.h"
|
#include "inspector.h"
|
||||||
@ -28,6 +29,7 @@
|
|||||||
#include "threadutils.h"
|
#include "threadutils.h"
|
||||||
#include "thumbbrowserbase.h"
|
#include "thumbbrowserbase.h"
|
||||||
#include "thumbnail.h"
|
#include "thumbnail.h"
|
||||||
|
#include "toolbar.h"
|
||||||
|
|
||||||
#include "../rtengine/procparams.h"
|
#include "../rtengine/procparams.h"
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "renamedlg.h"
|
#include "renamedlg.h"
|
||||||
#include "thumbimageupdater.h"
|
#include "thumbimageupdater.h"
|
||||||
#include "batchqueue.h"
|
#include "batchqueue.h"
|
||||||
|
#include "batchqueueentry.h"
|
||||||
#include "placesbrowser.h"
|
#include "placesbrowser.h"
|
||||||
#include "pathutils.h"
|
#include "pathutils.h"
|
||||||
#include "thumbnail.h"
|
#include "thumbnail.h"
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
|
|
||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
|
||||||
#include "filebrowserentry.h"
|
|
||||||
#include "lwbuttonset.h"
|
#include "lwbuttonset.h"
|
||||||
|
|
||||||
class FileBrowserEntry;
|
class FileBrowserEntry;
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
#include "editcallbacks.h"
|
#include "editcallbacks.h"
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
#include "wbprovider.h"
|
|
||||||
|
|
||||||
class FilmNegProvider
|
class FilmNegProvider
|
||||||
{
|
{
|
||||||
@ -36,7 +35,7 @@ public:
|
|||||||
virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array<float, 3>& newExps) = 0;
|
virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array<float, 3>& newExps) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class FilmNegative :
|
class FilmNegative final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class ClutComboBox :
|
class ClutComboBox final :
|
||||||
public MyComboBox
|
public MyComboBox
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#include "flatcurveeditorsubgroup.h"
|
#include "flatcurveeditorsubgroup.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
#include "popuptogglebutton.h"
|
||||||
|
|
||||||
#include "../rtengine/curves.h"
|
#include "../rtengine/curves.h"
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ public:
|
|||||||
// add other info here
|
// 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:
|
protected:
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Gradient :
|
class Gradient final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
#include "hsvequalizer.h"
|
#include "hsvequalizer.h"
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
|
||||||
#include "../rtengine/color.h"
|
#include "../rtengine/color.h"
|
||||||
|
@ -22,12 +22,15 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class HSVEqualizer :
|
class CurveEditor;
|
||||||
|
class CurveEditorGroup;
|
||||||
|
class FlatCurveEditor;
|
||||||
|
|
||||||
|
class HSVEqualizer final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
public CurveListener,
|
public CurveListener,
|
||||||
|
@ -36,7 +36,7 @@ public:
|
|||||||
virtual void saveInputICCReference(const Glib::ustring& fname, bool apply_wb) = 0;
|
virtual void saveInputICCReference(const Glib::ustring& fname, bool apply_wb) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ICMPanel :
|
class ICMPanel final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -18,10 +18,9 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "cropguilistener.h"
|
class CropGUIListener;
|
||||||
#include "toolbar.h"
|
|
||||||
|
|
||||||
class Thumbnail;
|
class Thumbnail;
|
||||||
|
class ToolBar;
|
||||||
class ImageAreaToolListener
|
class ImageAreaToolListener
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class ImpulseDenoise :
|
class ImpulseDenoise final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
#include "labcurve.h"
|
#include "labcurve.h"
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
|
||||||
#include "../rtengine/color.h"
|
#include "../rtengine/color.h"
|
||||||
|
@ -22,13 +22,15 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
|
class CurveEditorGroup;
|
||||||
|
class DiagonalCurveEditor;
|
||||||
class EditDataProvider;
|
class EditDataProvider;
|
||||||
|
class FlatCurveEditor;
|
||||||
|
|
||||||
class LCurve :
|
class LCurve final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
|
|
||||||
class LabGridArea: public Gtk::DrawingArea, public BackBuffer {
|
class LabGridArea final : public Gtk::DrawingArea, public BackBuffer {
|
||||||
private:
|
private:
|
||||||
rtengine::ProcEvent evt;
|
rtengine::ProcEvent evt;
|
||||||
Glib::ustring evtMsg;
|
Glib::ustring evtMsg;
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "lensgeomlistener.h"
|
#include "lensgeomlistener.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class LensGeometry :
|
class LensGeometry final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
{
|
{
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "lensgeom.h"
|
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class LensProfilePanel final :
|
class LensProfilePanel final :
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class LocalContrast: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
class LocalContrast final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
Adjuster *radius;
|
Adjuster *radius;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class PCVignette :
|
class PCVignette final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class PerspCorrection :
|
class PerspCorrection final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -18,10 +18,14 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <glibmm/ustring.h>
|
|
||||||
|
|
||||||
struct ParamsEdited;
|
struct ParamsEdited;
|
||||||
|
|
||||||
|
namespace Glib
|
||||||
|
{
|
||||||
|
|
||||||
|
class ustring;
|
||||||
|
|
||||||
|
}
|
||||||
namespace rtengine
|
namespace rtengine
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class PreProcess :
|
class PreProcess final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -18,8 +18,12 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <glibmm/ustring.h>
|
namespace Glib
|
||||||
|
{
|
||||||
|
|
||||||
|
class ustring;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
namespace rtengine
|
namespace rtengine
|
||||||
{
|
{
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "thresholdadjuster.h"
|
#include "thresholdadjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class PrSharpening :
|
class PrSharpening final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public ThresholdAdjusterListener,
|
public ThresholdAdjusterListener,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "checkbox.h"
|
#include "checkbox.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class RAWCACorr :
|
class RAWCACorr final:
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public CheckBoxListener,
|
public CheckBoxListener,
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class RAWExposure :
|
class RAWExposure final:
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
@ -32,8 +32,6 @@ class RAWExposure :
|
|||||||
protected:
|
protected:
|
||||||
Adjuster* PexPos;
|
Adjuster* PexPos;
|
||||||
|
|
||||||
private:
|
|
||||||
// Gtk::CheckButton* PextwoGreen;
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
RAWExposure ();
|
RAWExposure ();
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
* This file is part of RawTherapee.
|
* This file is part of RawTherapee.
|
||||||
*/
|
*/
|
||||||
#include "retinex.h"
|
#include "retinex.h"
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "mycurve.h"
|
#include "mycurve.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
@ -7,13 +7,18 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
#include "curveeditorgroup.h"
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "thresholdadjuster.h"
|
#include "thresholdadjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Retinex :
|
class CurveEditor;
|
||||||
|
class CurveEditorGroup;
|
||||||
|
class DiagonalCurveEditor;
|
||||||
|
class FlatCurveEditor;
|
||||||
|
|
||||||
|
class Retinex final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
public rtengine::RetinexListener,
|
public rtengine::RetinexListener,
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
#include "rgbcurves.h"
|
#include "rgbcurves.h"
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
|
||||||
#include "../rtengine/procparams.h"
|
#include "../rtengine/procparams.h"
|
||||||
|
@ -22,11 +22,13 @@
|
|||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class RGBCurves :
|
class CurveEditorGroup;
|
||||||
|
class DiagonalCurveEditor;
|
||||||
|
|
||||||
|
class RGBCurves final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
public CurveListener,
|
public CurveListener,
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "rotate.h"
|
#include "rotate.h"
|
||||||
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
|
#include "lensgeomlistener.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
|
|
||||||
#include "../rtengine/procparams.h"
|
#include "../rtengine/procparams.h"
|
||||||
|
@ -21,10 +21,10 @@
|
|||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "lensgeomlistener.h"
|
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Rotate :
|
class LensGeomListener;
|
||||||
|
class Rotate final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "whitebalance.h"
|
#include "whitebalance.h"
|
||||||
#include "../rtengine/settings.h"
|
#include "../rtengine/settings.h"
|
||||||
#include "batchqueuepanel.h"
|
#include "batchqueuepanel.h"
|
||||||
|
#include "batchqueueentry.h"
|
||||||
#include "editorpanel.h"
|
#include "editorpanel.h"
|
||||||
#include "filepanel.h"
|
#include "filepanel.h"
|
||||||
#include "filmsimulation.h"
|
#include "filmsimulation.h"
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class SensorBayer :
|
class SensorBayer final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
{
|
{
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class SensorXTrans :
|
class SensorXTrans final:
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
{
|
{
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class ShadowsHighlights :
|
class ShadowsHighlights final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class SharpenEdge :
|
class SharpenEdge final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "thresholdadjuster.h"
|
#include "thresholdadjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Sharpening :
|
class Sharpening final:
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public ThresholdAdjusterListener,
|
public ThresholdAdjusterListener,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class SharpenMicro :
|
class SharpenMicro final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class SoftLight: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
class SoftLight final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
Adjuster *strength;
|
Adjuster *strength;
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "rtscalable.h"
|
#include "rtscalable.h"
|
||||||
#include "thumbbrowserbase.h"
|
#include "thumbbrowserbase.h"
|
||||||
|
#include "thumbbrowserentrybase.h"
|
||||||
|
|
||||||
#include "../rtengine/rt_math.h"
|
#include "../rtengine/rt_math.h"
|
||||||
|
|
||||||
|
@ -24,13 +24,13 @@
|
|||||||
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "thumbbrowserentrybase.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Class handling the list of ThumbBrowserEntry objects and their position in it's allocated space
|
* Class handling the list of ThumbBrowserEntry objects and their position in it's allocated space
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Inspector;
|
class Inspector;
|
||||||
|
class ThumbBrowserEntryBase;
|
||||||
|
|
||||||
class ThumbBrowserBase :
|
class ThumbBrowserBase :
|
||||||
public Gtk::Grid
|
public Gtk::Grid
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
|
||||||
#include "thumbimageupdater.h"
|
#include "thumbimageupdater.h"
|
||||||
|
#include "thumbbrowserentrybase.h"
|
||||||
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "threadutils.h"
|
#include "threadutils.h"
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
#include "thumbbrowserentrybase.h"
|
|
||||||
|
|
||||||
#include "../rtengine/noncopyable.h"
|
#include "../rtengine/noncopyable.h"
|
||||||
|
|
||||||
@ -36,6 +35,9 @@ namespace procparams
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ThumbBrowserEntryBase;
|
||||||
|
|
||||||
class ThumbImageUpdateListener
|
class ThumbImageUpdateListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -23,6 +23,8 @@
|
|||||||
#include "tonecurve.h"
|
#include "tonecurve.h"
|
||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "eventmapper.h"
|
#include "eventmapper.h"
|
||||||
#include "ppversion.h"
|
#include "ppversion.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
@ -21,14 +21,16 @@
|
|||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
|
class CurveEditor;
|
||||||
|
class CurveEditorGroup;
|
||||||
|
class DiagonalCurveEditor;
|
||||||
class EditDataProvider;
|
class EditDataProvider;
|
||||||
|
|
||||||
class ToneCurve :
|
class ToneCurve final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel,
|
public FoldableToolPanel,
|
||||||
|
@ -37,7 +37,7 @@ public:
|
|||||||
virtual void editModeSwitchedOff() = 0;
|
virtual void editModeSwitchedOff() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ToolBar : public Gtk::HBox
|
class ToolBar final : public Gtk::HBox
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<RTImage> handimg;
|
std::unique_ptr<RTImage> handimg;
|
||||||
|
@ -41,9 +41,6 @@ class ProcParams;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FoldableToolPanel;
|
|
||||||
class ToolPanel;
|
|
||||||
|
|
||||||
class ToolPanelListener
|
class ToolPanelListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "metadatapanel.h"
|
#include "metadatapanel.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
|
|
||||||
#include "../rtengine/imagesource.h"
|
#include "../rtengine/imagesource.h"
|
||||||
#include "../rtengine/dfmanager.h"
|
#include "../rtengine/dfmanager.h"
|
||||||
#include "../rtengine/ffmanager.h"
|
#include "../rtengine/ffmanager.h"
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "vibrance.h"
|
#include "vibrance.h"
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "../rtengine/color.h"
|
#include "../rtengine/color.h"
|
||||||
|
|
||||||
|
@ -21,12 +21,14 @@
|
|||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
|
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "thresholdadjuster.h"
|
#include "thresholdadjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Vibrance :
|
class CurveEditorGroup;
|
||||||
|
class DiagonalCurveEditor;
|
||||||
|
|
||||||
|
class Vibrance final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public ThresholdCurveProvider,
|
public ThresholdCurveProvider,
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class Vignetting :
|
class Vignetting final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#include "wavelet.h"
|
#include "wavelet.h"
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
|
#include "curveeditor.h"
|
||||||
|
#include "curveeditorgroup.h"
|
||||||
#include "editcallbacks.h"
|
#include "editcallbacks.h"
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "rtimage.h"
|
#include "rtimage.h"
|
||||||
|
@ -22,15 +22,18 @@
|
|||||||
#include <gtkmm.h>
|
#include <gtkmm.h>
|
||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
#include "curveeditor.h"
|
#include "curvelistener.h"
|
||||||
#include "curveeditorgroup.h"
|
|
||||||
#include "thresholdadjuster.h"
|
#include "thresholdadjuster.h"
|
||||||
#include "colorprovider.h"
|
#include "colorprovider.h"
|
||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
|
|
||||||
|
class CurveEditor;
|
||||||
|
class CurveEditorGroup;
|
||||||
|
class DiagonalCurveEditor;
|
||||||
class EditDataProvider;
|
class EditDataProvider;
|
||||||
|
class FlatCurveEditor;
|
||||||
|
|
||||||
class Wavelet :
|
class Wavelet final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public ThresholdAdjusterListener,
|
public ThresholdAdjusterListener,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
|
@ -35,7 +35,7 @@ public:
|
|||||||
virtual void spotWBRequested(int size) = 0;
|
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 {
|
enum WB_LabelType {
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "guiutils.h"
|
#include "guiutils.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class XTransProcess :
|
class XTransProcess final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public CheckBoxListener,
|
public CheckBoxListener,
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "adjuster.h"
|
#include "adjuster.h"
|
||||||
#include "toolpanel.h"
|
#include "toolpanel.h"
|
||||||
|
|
||||||
class XTransRAWExposure :
|
class XTransRAWExposure final :
|
||||||
public ToolParamBlock,
|
public ToolParamBlock,
|
||||||
public AdjusterListener,
|
public AdjusterListener,
|
||||||
public FoldableToolPanel
|
public FoldableToolPanel
|
||||||
|
Loading…
x
Reference in New Issue
Block a user