typedef enum
{
/*! No compression */
- T4_COMPRESSION_NONE = 0,
- /*! T.1 1D compression */
- T4_COMPRESSION_T4_1D = 1,
+ T4_COMPRESSION_NONE = 0x01,
+ /*! T.4 1D compression */
+ T4_COMPRESSION_T4_1D = 0x02,
/*! T.4 2D compression */
- T4_COMPRESSION_T4_2D = 2,
+ T4_COMPRESSION_T4_2D = 0x04,
/*! T.6 2D compression */
- T4_COMPRESSION_T6 = 3,
+ T4_COMPRESSION_T6 = 0x08,
/*! T.85 monochrome JBIG coding with L0 fixed. */
- T4_COMPRESSION_T85 = 4,
+ T4_COMPRESSION_T85 = 0x10,
/*! T.85 monochrome JBIG coding with L0 variable. */
- T4_COMPRESSION_T85_L0 = 5,
+ T4_COMPRESSION_T85_L0 = 0x20,
/*! T.43 gray-scale/colour JBIG coding */
- T4_COMPRESSION_T43 = 6,
+ T4_COMPRESSION_T43 = 0x40,
/*! T.45 run length colour compression */
- T4_COMPRESSION_T45 = 7,
+ T4_COMPRESSION_T45 = 0x80,
/*! T.42 + T.81 + T.30 Annex E colour JPEG coding */
- T4_COMPRESSION_T42_T81 = 8,
+ T4_COMPRESSION_T42_T81 = 0x100,
/*! T.42 + T.81 + T.30 Annex K colour sYCC-JPEG coding */
- T4_COMPRESSION_SYCC_T81 = 9,
+ T4_COMPRESSION_SYCC_T81 = 0x200,
/*! T.88 monochrome JBIG2 compression */
- T4_COMPRESSION_T88 = 10
-} t4_image_compression_t;
-
-enum
-{
- /*! No compression */
- T4_SUPPORT_COMPRESSION_NONE = 0x01,
- /*! T.1 1D compression */
- T4_SUPPORT_COMPRESSION_T4_1D = 0x02,
- /*! T.4 2D compression */
- T4_SUPPORT_COMPRESSION_T4_2D = 0x04,
- /*! T.6 2D compression */
- T4_SUPPORT_COMPRESSION_T6 = 0x08,
- /*! T.85 monochrome JBIG compression, with fixed L0 */
- T4_SUPPORT_COMPRESSION_T85 = 0x10,
- /*! T.85 monochrome JBIG compression, with variable L0 */
- T4_SUPPORT_COMPRESSION_T85_L0 = 0x20,
- /*! T.43 colour JBIG compression */
- T4_SUPPORT_COMPRESSION_T43 = 0x40,
- /*! T.45 run length colour compression */
- T4_SUPPORT_COMPRESSION_T45 = 0x80,
- /*! T.81 + T.30 Annex E colour JPEG compression */
- T4_SUPPORT_COMPRESSION_T42_T81 = 0x100,
- /*! T.81 + T.30 Annex K colour sYCC-JPEG compression */
- T4_SUPPORT_COMPRESSION_SYCC_T81 = 0x200,
- /*! T.88 monochrome JBIG2 compression */
- T4_SUPPORT_COMPRESSION_T88 = 0x400,
+ T4_COMPRESSION_T88 = 0x400,
+ /*! Support solour compression without sub-sampling */
+ T4_COMPRESSION_NO_SUBSAMPLING = 0x800000,
/*! Gray-scale support by multi-level codecs */
- T4_SUPPORT_COMPRESSION_GRAYSCALE = 0x1000000,
+ T4_COMPRESSION_GRAYSCALE = 0x1000000,
/*! Colour support by multi-level codecs */
- T4_SUPPORT_COMPRESSION_COLOUR = 0x2000000,
+ T4_COMPRESSION_COLOUR = 0x2000000,
/*! 12 bit mode for gray-scale and colour */
- T4_SUPPORT_COMPRESSION_12BIT = 0x4000000,
+ T4_COMPRESSION_12BIT = 0x4000000,
/*! Convert a colour image to a gray-scale one */
- T4_SUPPORT_COMPRESSION_COLOUR_TO_GRAY = 0x8000000,
+ T4_COMPRESSION_COLOUR_TO_GRAY = 0x8000000,
/*! Dither a gray-scale image down a simple bilevel image, with rescaling to fit a FAX page */
- T30_SUPPORT_GRAY_TO_BILEVEL = 0x10000000,
+ T4_COMPRESSION_GRAY_TO_BILEVEL = 0x10000000,
/*! Dither a colour image down a simple bilevel image, with rescaling to fit a FAX page */
- T30_SUPPORT_COLOUR_TO_BILEVEL = 0x20000000,
+ T4_COMPRESSION_COLOUR_TO_BILEVEL = 0x20000000,
/*! Rescale an image (except a bi-level image) to fit a permitted FAX width when necessary */
- T4_SUPPORT_COMPRESSION_RESCALING = 0x40000000
-};
+ T4_COMPRESSION_RESCALING = 0x40000000
+} t4_image_compression_t;
/*! Image type */
typedef enum
enum
{
/*! Standard FAX resolution 204dpi x 98dpi - bi-level only */
- T4_RESOLUTION_R8_STANDARD = 1,
+ T4_RESOLUTION_R8_STANDARD = 0x1,
/*! Fine FAX resolution 204dpi x 196dpi - bi-level only */
- T4_RESOLUTION_R8_FINE = 2,
+ T4_RESOLUTION_R8_FINE = 0x2,
/*! Super-fine FAX resolution 204dpi x 391dpi - bi-level only */
- T4_RESOLUTION_R8_SUPERFINE = 3,
+ T4_RESOLUTION_R8_SUPERFINE = 0x4,
/*! Double FAX resolution 408dpi x 391dpi - bi-level only */
- T4_RESOLUTION_R16_SUPERFINE = 4,
+ T4_RESOLUTION_R16_SUPERFINE = 0x8,
/*! 100dpi x 100dpi - gray-scale and colour only */
- T4_RESOLUTION_100_100 = 5,
+ T4_RESOLUTION_100_100 = 0x10,
/*! 200dpi x 100dpi - bi-level only */
- T4_RESOLUTION_200_100 = 6,
+ T4_RESOLUTION_200_100 = 0x20,
/*! 200dpi x 200dpi */
- T4_RESOLUTION_200_200 = 7,
+ T4_RESOLUTION_200_200 = 0x40,
/*! 200dpi x 400dpi - bi-level only */
- T4_RESOLUTION_200_400 = 8,
+ T4_RESOLUTION_200_400 = 0x80,
/*! 300dpi x 300dpi */
- T4_RESOLUTION_300_300 = 9,
+ T4_RESOLUTION_300_300 = 0x100,
/*! 300dpi x 600dpi - bi-level only */
- T4_RESOLUTION_300_600 = 10,
+ T4_RESOLUTION_300_600 = 0x200,
/*! 400dpi x 400dpi */
- T4_RESOLUTION_400_400 = 11,
+ T4_RESOLUTION_400_400 = 0x400,
/*! 400dpi x 800dpi - bi-level only */
- T4_RESOLUTION_400_800 = 12,
+ T4_RESOLUTION_400_800 = 0x800,
/*! 600dpi x 600dpi */
- T4_RESOLUTION_600_600 = 13,
+ T4_RESOLUTION_600_600 = 0x1000,
/*! 600dpi x 1200dpi - bi-level only */
- T4_RESOLUTION_600_1200 = 14,
+ T4_RESOLUTION_600_1200 = 0x2000,
/*! 1200dpi x 1200dpi */
- T4_RESOLUTION_1200_1200 = 15
-};
-
-enum
-{
- /*! Support standard FAX resolution 204dpi x 98dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_R8_STANDARD = 0x1,
- /*! Support fine FAX resolution 204dpi x 196dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_R8_FINE = 0x2,
- /*! Support super-fine FAX resolution 204dpi x 391dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_R8_SUPERFINE = 0x4,
- /*! Support double FAX resolution 408dpi x 391dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_R16_SUPERFINE = 0x8,
-
- /*! Support 100dpi x 100dpi - gray-scale and colour only */
- T4_SUPPORT_RESOLUTION_100_100 = 0x10,
- /*! Support 200dpi x 100dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_200_100 = 0x20,
- /*! Support 200dpi x 200dpi */
- T4_SUPPORT_RESOLUTION_200_200 = 0x40,
- /*! Support 200dpi x 400dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_200_400 = 0x80,
- /*! Support 300dpi x 300dpi */
- T4_SUPPORT_RESOLUTION_300_300 = 0x100,
- /*! Support 300dpi x 600dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_300_600 = 0x200,
- /*! Support 400dpi x 400dpi */
- T4_SUPPORT_RESOLUTION_400_400 = 0x400,
- /*! Support 400dpi x 800dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_400_800 = 0x800,
- /*! Support 600dpi x 600dpi */
- T4_SUPPORT_RESOLUTION_600_600 = 0x1000,
- /*! Support 600dpi x 1200dpi - bi-level only */
- T4_SUPPORT_RESOLUTION_600_1200 = 0x2000,
- /*! Support 1200dpi x 1200dpi */
- T4_SUPPORT_RESOLUTION_1200_1200 = 0x4000
+ T4_RESOLUTION_1200_1200 = 0x4000
};
/*!
/* No scan-line padding required, but some may be specified by the application. */
set_ctrl_bits(s->local_dis_dtc_frame, s->local_min_scan_time_code, T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_1);
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T4_2D))
+ if ((s->supported_compressions & T4_COMPRESSION_T4_2D))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_2D_CAPABLE);
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_NONE))
+ if ((s->supported_compressions & T4_COMPRESSION_NONE))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_UNCOMPRESSED_CAPABLE);
if (s->ecm_allowed)
{
/* Only offer the option of fancy compression schemes, if we are
also offering the ECM option needed to support them. */
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T6))
+ if ((s->supported_compressions & T4_COMPRESSION_T6))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T6_CAPABLE);
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T85))
+ if ((s->supported_compressions & T4_COMPRESSION_T85))
{
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T85_CAPABLE);
/* Bit 79 set with bit 78 clear is invalid, so only check for L0
support here. */
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T85_L0))
+ if ((s->supported_compressions & T4_COMPRESSION_T85_L0))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T85_L0_CAPABLE);
}
- //if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T88))
+ //if ((s->supported_compressions & T4_COMPRESSION_T88))
//{
// set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T88_CAPABILITY_1);
// set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T88_CAPABILITY_2);
// set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T88_CAPABILITY_3);
//}
- //if ((s->supported_compressions & (T4_SUPPORT_COMPRESSION_COLOUR | T4_SUPPORT_COMPRESSION_GRAYSCALE)))
+ //if ((s->supported_compressions & (T4_COMPRESSION_COLOUR | T4_COMPRESSION_GRAYSCALE)))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_COLOUR))
+ if ((s->supported_compressions & T4_COMPRESSION_COLOUR))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_FULL_COLOUR_CAPABLE);
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T42_T81))
+ if ((s->supported_compressions & T4_COMPRESSION_T42_T81))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T81_CAPABLE);
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T43))
+ if ((s->supported_compressions & T4_COMPRESSION_T43))
{
/* Note 25 of table 2/T.30 */
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T81_CAPABLE);
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T43_CAPABLE);
/* No plane interleave */
}
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T45))
+ if ((s->supported_compressions & T4_COMPRESSION_T45))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T45_CAPABLE);
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_SYCC_T81))
+ if ((s->supported_compressions & T4_COMPRESSION_SYCC_T81))
{
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_T81_CAPABLE);
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_SYCC_T81_CAPABLE);
}
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_12BIT))
+ if ((s->supported_compressions & T4_COMPRESSION_12BIT))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_12BIT_CAPABLE);
- //if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_NO_SUBSAMPLING))
+ //if ((s->supported_compressions & T4_COMPRESSION_NO_SUBSAMPLING))
// set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_NO_SUBSAMPLING);
/* No custom illuminant */
if ((s->supported_t30_features & T30_SUPPORT_INTERNET_ROUTING_ADDRESS))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_INTERNET_ROUTING_ADDRESS);
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_1200_1200))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_1200_1200))
{
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_1200_1200_CAPABLE);
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_1200_1200))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_1200_1200))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_1200_1200_CAPABLE);
}
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_600_1200))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_600_1200))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_600_1200_CAPABLE);
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_600_600))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_600_600))
{
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_600_600_CAPABLE);
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_600_600))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_600_600))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_600_600_CAPABLE);
}
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_400_800))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_400_800))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_400_800_CAPABLE);
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_R16_SUPERFINE))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_R16_SUPERFINE))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_400_400_CAPABLE);
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_400_400))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_400_400))
{
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_400_400_CAPABLE);
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_400_400))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_400_400))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_300_300_400_400_CAPABLE);
}
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_300_600))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_300_600))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_300_600_CAPABLE);
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_300_300))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_300_300))
{
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_300_300_CAPABLE);
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_300_300))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_300_300))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_300_300_400_400_CAPABLE);
}
- if ((s->supported_bilevel_resolutions & (T4_SUPPORT_RESOLUTION_200_400 | T4_SUPPORT_RESOLUTION_R8_SUPERFINE)))
+ if ((s->supported_bilevel_resolutions & (T4_RESOLUTION_200_400 | T4_RESOLUTION_R8_SUPERFINE)))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_200_400_CAPABLE);
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_R8_FINE))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_R8_FINE))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_200_200_CAPABLE);
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_200_200))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_200_200))
{
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_200_200_CAPABLE);
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_200_200))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_200_200))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_FULL_COLOUR_CAPABLE);
}
/* Standard FAX resolution bi-level image support goes without saying */
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_100_100))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_100_100))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_100_100_CAPABLE);
- if ((s->supported_bilevel_resolutions & (T4_SUPPORT_RESOLUTION_R8_STANDARD | T4_SUPPORT_RESOLUTION_R8_FINE | T4_SUPPORT_RESOLUTION_R8_SUPERFINE | T4_SUPPORT_RESOLUTION_R16_SUPERFINE)))
+ if ((s->supported_bilevel_resolutions & (T4_RESOLUTION_R8_STANDARD | T4_RESOLUTION_R8_FINE | T4_RESOLUTION_R8_SUPERFINE | T4_RESOLUTION_R16_SUPERFINE)))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_METRIC_RESOLUTION_PREFERRED);
- if ((s->supported_bilevel_resolutions & (T4_SUPPORT_RESOLUTION_200_100 | T4_SUPPORT_RESOLUTION_200_200 | T4_SUPPORT_RESOLUTION_200_400 | T4_SUPPORT_RESOLUTION_300_300 | T4_SUPPORT_RESOLUTION_300_600 | T4_SUPPORT_RESOLUTION_400_400 | T4_SUPPORT_RESOLUTION_400_800 | T4_SUPPORT_RESOLUTION_600_600 | T4_SUPPORT_RESOLUTION_600_1200 | T4_SUPPORT_RESOLUTION_1200_1200)))
+ if ((s->supported_bilevel_resolutions & (T4_RESOLUTION_200_100 | T4_RESOLUTION_200_200 | T4_RESOLUTION_200_400 | T4_RESOLUTION_300_300 | T4_RESOLUTION_300_600 | T4_RESOLUTION_400_400 | T4_RESOLUTION_400_800 | T4_RESOLUTION_600_600 | T4_RESOLUTION_600_1200 | T4_RESOLUTION_1200_1200)))
set_ctrl_bit(s->local_dis_dtc_frame, T30_DIS_BIT_INCH_RESOLUTION_PREFERRED);
/* No double sided printing (alternate mode) */
if (!s->error_correcting_mode)
{
/* Remove any compression schemes which need error correction to work. */
- s->mutual_compressions &= (0xF0000000 | T4_SUPPORT_COMPRESSION_NONE | T4_SUPPORT_COMPRESSION_T4_1D | T4_SUPPORT_COMPRESSION_T4_2D);
+ s->mutual_compressions &= (0xF0000000 | T4_COMPRESSION_NONE | T4_COMPRESSION_T4_1D | T4_COMPRESSION_T4_2D);
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_2D_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_T4_2D;
+ s->mutual_compressions &= ~T4_COMPRESSION_T4_2D;
}
else
{
/* Check the bi-level capabilities */
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_2D_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_T4_2D;
+ s->mutual_compressions &= ~T4_COMPRESSION_T4_2D;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_T6_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_T6;
+ s->mutual_compressions &= ~T4_COMPRESSION_T6;
/* T.85 L0 capable without T.85 capable is an invalid combination, so let
just zap both capabilities if the far end is not T.85 capable. */
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_T85_CAPABLE))
- s->mutual_compressions &= ~(T4_SUPPORT_COMPRESSION_T85 | T4_SUPPORT_COMPRESSION_T85_L0);
+ s->mutual_compressions &= ~(T4_COMPRESSION_T85 | T4_COMPRESSION_T85_L0);
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_T85_L0_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_T85_L0;
+ s->mutual_compressions &= ~T4_COMPRESSION_T85_L0;
/* Check for full colour or only gray-scale from the multi-level codecs */
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_FULL_COLOUR_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_COLOUR;
+ s->mutual_compressions &= ~T4_COMPRESSION_COLOUR;
/* Check the colour capabilities */
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_T81_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_T42_T81;
+ s->mutual_compressions &= ~T4_COMPRESSION_T42_T81;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_SYCC_T81_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_SYCC_T81;
+ s->mutual_compressions &= ~T4_COMPRESSION_SYCC_T81;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_T43_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_T43;
+ s->mutual_compressions &= ~T4_COMPRESSION_T43;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_T45_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_T45;
+ s->mutual_compressions &= ~T4_COMPRESSION_T45;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_12BIT_CAPABLE))
- s->mutual_compressions &= ~T4_SUPPORT_COMPRESSION_12BIT;
+ s->mutual_compressions &= ~T4_COMPRESSION_12BIT;
//if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_NO_SUBSAMPLING))
// ???? = T4_COMPRESSION_T42_T81_SUBSAMPLING;
s->mutual_colour_resolutions = s->supported_colour_resolutions;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_1200_1200_CAPABLE))
{
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_1200_1200;
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_1200_1200;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_1200_1200;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_1200_1200;
}
else
{
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_1200_1200_CAPABLE))
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_1200_1200;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_1200_1200;
}
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_600_1200_CAPABLE))
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_600_1200;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_600_1200;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_600_600_CAPABLE))
{
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_600_600;
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_600_600;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_600_600;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_600_600;
}
else
{
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_600_600_CAPABLE))
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_600_600;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_600_600;
}
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_400_800_CAPABLE))
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_400_800;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_400_800;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_400_400_CAPABLE))
{
- s->mutual_bilevel_resolutions &= ~(T4_SUPPORT_RESOLUTION_400_400 | T4_SUPPORT_RESOLUTION_R16_SUPERFINE);
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_400_400;
+ s->mutual_bilevel_resolutions &= ~(T4_RESOLUTION_400_400 | T4_RESOLUTION_R16_SUPERFINE);
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_400_400;
}
else
{
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_300_300_400_400_CAPABLE))
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_400_400;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_400_400;
}
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_300_600_CAPABLE))
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_300_600;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_300_600;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_300_300_CAPABLE))
{
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_300_300;
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_300_300;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_300_300;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_300_300;
}
else
{
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_300_300_400_400_CAPABLE))
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_300_300;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_300_300;
}
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_200_400_CAPABLE))
{
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_INCH_RESOLUTION_PREFERRED))
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_200_400;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_200_400;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_METRIC_RESOLUTION_PREFERRED))
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_R8_SUPERFINE;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_R8_SUPERFINE;
}
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_200_200_CAPABLE))
{
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_INCH_RESOLUTION_PREFERRED))
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_200_200;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_200_200;
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_METRIC_RESOLUTION_PREFERRED))
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_R8_FINE;
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_200_200;
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_R8_FINE;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_200_200;
}
else
{
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_INCH_RESOLUTION_PREFERRED))
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_200_200;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_200_200;
}
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_INCH_RESOLUTION_PREFERRED))
- s->mutual_bilevel_resolutions &= ~T4_SUPPORT_RESOLUTION_200_100;
- /* Never suppress T4_SUPPORT_RESOLUTION_R8_STANDARD */
+ s->mutual_bilevel_resolutions &= ~T4_RESOLUTION_200_100;
+ /* Never suppress T4_RESOLUTION_R8_STANDARD */
if (!test_ctrl_bit(s->far_dis_dtc_frame, T30_DIS_BIT_COLOUR_GRAY_100_100_CAPABLE))
- s->mutual_colour_resolutions &= ~T4_SUPPORT_RESOLUTION_100_100;
+ s->mutual_colour_resolutions &= ~T4_RESOLUTION_100_100;
s->mutual_image_sizes = s->supported_image_sizes;
/* 215mm wide is always supported */
/* Note 35 of Table 2/T.30 */
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_FULL_COLOUR_MODE))
{
- if ((s->supported_colour_resolutions & T4_SUPPORT_COMPRESSION_COLOUR))
+ if ((s->supported_colour_resolutions & T4_COMPRESSION_COLOUR))
{
/* We are going to work in full colour mode */
}
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_12BIT_COMPONENT))
{
- if ((s->supported_colour_resolutions & T4_SUPPORT_COMPRESSION_12BIT))
+ if ((s->supported_colour_resolutions & T4_COMPRESSION_12BIT))
{
/* We are going to work in 12 bit mode */
}
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_NO_SUBSAMPLING))
{
- //???? = T4_SUPPORT_COMPRESSION_T42_T81_SUBSAMPLING;
+ //???? = T4_COMPRESSION_T42_T81_SUBSAMPLING;
}
if (!test_ctrl_bit(dcs_frame, T30_DCS_BIT_PREFERRED_HUFFMAN_TABLES))
{
- //???? = T4_SUPPORT_COMPRESSION_T42_T81_HUFFMAN;
+ //???? = T4_COMPRESSION_T42_T81_HUFFMAN;
}
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_COLOUR_GRAY_1200_1200))
{
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_1200_1200))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_1200_1200))
{
s->x_resolution = T4_X_RESOLUTION_1200;
s->y_resolution = T4_Y_RESOLUTION_1200;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_COLOUR_GRAY_600_600))
{
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_600_600))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_600_600))
{
s->x_resolution = T4_X_RESOLUTION_600;
s->y_resolution = T4_Y_RESOLUTION_600;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_400_400))
{
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_400_400))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_400_400))
{
s->x_resolution = T4_X_RESOLUTION_400;
s->y_resolution = T4_Y_RESOLUTION_400;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_300_300))
{
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_300_300))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_300_300))
{
s->x_resolution = T4_X_RESOLUTION_300;
s->y_resolution = T4_Y_RESOLUTION_300;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_200_200))
{
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_200_200))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_200_200))
{
s->x_resolution = T4_X_RESOLUTION_200;
s->y_resolution = T4_Y_RESOLUTION_200;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_COLOUR_GRAY_100_100))
{
- if ((s->supported_colour_resolutions & T4_SUPPORT_RESOLUTION_100_100))
+ if ((s->supported_colour_resolutions & T4_RESOLUTION_100_100))
{
s->x_resolution = T4_X_RESOLUTION_100;
s->y_resolution = T4_Y_RESOLUTION_100;
/* Check which compression the far end has decided to use. */
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_T81_MODE))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T42_T81))
+ if ((s->supported_compressions & T4_COMPRESSION_T42_T81))
s->line_compression = T4_COMPRESSION_T42_T81;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_T43_MODE))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T43))
+ if ((s->supported_compressions & T4_COMPRESSION_T43))
s->line_compression = T4_COMPRESSION_T43;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_T45_MODE))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T45))
+ if ((s->supported_compressions & T4_COMPRESSION_T45))
s->line_compression = T4_COMPRESSION_T45;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_SYCC_T81_MODE))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_SYCC_T81))
+ if ((s->supported_compressions & T4_COMPRESSION_SYCC_T81))
s->line_compression = T4_COMPRESSION_SYCC_T81;
}
}
/* Bi-level image */
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_1200_1200))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_1200_1200))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_1200_1200))
{
s->x_resolution = T4_X_RESOLUTION_1200;
s->y_resolution = T4_Y_RESOLUTION_1200;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_600_1200))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_600_1200))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_600_1200))
{
s->x_resolution = T4_X_RESOLUTION_600;
s->y_resolution = T4_Y_RESOLUTION_1200;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_600_600))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_600_600))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_600_600))
{
s->x_resolution = T4_X_RESOLUTION_600;
s->y_resolution = T4_Y_RESOLUTION_600;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_400_800))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_400_800))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_400_800))
{
s->x_resolution = T4_X_RESOLUTION_400;
s->y_resolution = T4_Y_RESOLUTION_800;
{
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_INCH_RESOLUTION))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_400_400))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_400_400))
{
s->x_resolution = T4_X_RESOLUTION_400;
s->y_resolution = T4_Y_RESOLUTION_400;
}
else
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_R16_SUPERFINE))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_R16_SUPERFINE))
{
s->x_resolution = T4_X_RESOLUTION_R16;
s->y_resolution = T4_Y_RESOLUTION_SUPERFINE;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_300_600))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_300_600))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_300_600))
{
s->x_resolution = T4_X_RESOLUTION_300;
s->y_resolution = T4_Y_RESOLUTION_600;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_300_300))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_300_300))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_300_300))
{
s->x_resolution = T4_X_RESOLUTION_300;
s->y_resolution = T4_Y_RESOLUTION_300;
{
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_INCH_RESOLUTION))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_200_400))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_200_400))
{
s->x_resolution = T4_X_RESOLUTION_200;
s->y_resolution = T4_Y_RESOLUTION_400;
}
else
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_R8_SUPERFINE))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_R8_SUPERFINE))
{
s->x_resolution = T4_X_RESOLUTION_R8;
s->y_resolution = T4_Y_RESOLUTION_SUPERFINE;
{
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_INCH_RESOLUTION))
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_200_200))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_200_200))
{
s->x_resolution = T4_X_RESOLUTION_200;
s->y_resolution = T4_Y_RESOLUTION_200;
}
else
{
- if ((s->supported_bilevel_resolutions & T4_SUPPORT_RESOLUTION_R8_FINE))
+ if ((s->supported_bilevel_resolutions & T4_RESOLUTION_R8_FINE))
{
s->x_resolution = T4_X_RESOLUTION_R8;
s->y_resolution = T4_Y_RESOLUTION_FINE;
||
test_ctrl_bit(dcs_frame, T30_DCS_BIT_T88_MODE_3))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T88))
+ if ((s->supported_compressions & T4_COMPRESSION_T88))
s->line_compression = T4_COMPRESSION_T88;
}
if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_T85_L0_MODE))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T85_L0))
+ if ((s->supported_compressions & T4_COMPRESSION_T85_L0))
s->line_compression = T4_COMPRESSION_T85_L0;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_T85_MODE))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T85))
+ if ((s->supported_compressions & T4_COMPRESSION_T85))
s->line_compression = T4_COMPRESSION_T85;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_T6_MODE))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T6))
+ if ((s->supported_compressions & T4_COMPRESSION_T6))
s->line_compression = T4_COMPRESSION_T6;
}
else if (test_ctrl_bit(dcs_frame, T30_DCS_BIT_2D_MODE))
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T4_2D))
+ if ((s->supported_compressions & T4_COMPRESSION_T4_2D))
s->line_compression = T4_COMPRESSION_T4_2D;
}
else
{
- if ((s->supported_compressions & T4_SUPPORT_COMPRESSION_T4_1D))
+ if ((s->supported_compressions & T4_COMPRESSION_T4_1D))
s->line_compression = T4_COMPRESSION_T4_1D;
}
}
}
/* Choose a compression scheme from amongst those mutually available */
- if ((s->mutual_compressions & T4_SUPPORT_COMPRESSION_T85_L0))
+ if ((s->mutual_compressions & T4_COMPRESSION_T85_L0))
s->line_compression = T4_COMPRESSION_T85_L0;
- else if ((s->mutual_compressions & T4_SUPPORT_COMPRESSION_T85))
+ else if ((s->mutual_compressions & T4_COMPRESSION_T85))
s->line_compression = T4_COMPRESSION_T85;
- else if ((s->mutual_compressions & T4_SUPPORT_COMPRESSION_T6))
+ else if ((s->mutual_compressions & T4_COMPRESSION_T6))
s->line_compression = T4_COMPRESSION_T6;
- else if ((s->mutual_compressions & T4_SUPPORT_COMPRESSION_T4_2D))
+ else if ((s->mutual_compressions & T4_COMPRESSION_T4_2D))
s->line_compression = T4_COMPRESSION_T4_2D;
else
s->line_compression = T4_COMPRESSION_T4_1D;
/* Default to the basic modems. */
s->supported_modems = T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17;
- s->supported_compressions = T4_SUPPORT_COMPRESSION_T4_1D | T4_SUPPORT_COMPRESSION_T4_2D;
- s->supported_bilevel_resolutions = T4_SUPPORT_RESOLUTION_R8_STANDARD
- | T4_SUPPORT_RESOLUTION_R8_FINE
- | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
- | T4_SUPPORT_RESOLUTION_200_100
- | T4_SUPPORT_RESOLUTION_200_200
- | T4_SUPPORT_RESOLUTION_200_400;
+ s->supported_compressions = T4_COMPRESSION_T4_1D | T4_COMPRESSION_T4_2D;
+ s->supported_bilevel_resolutions = T4_RESOLUTION_R8_STANDARD
+ | T4_RESOLUTION_R8_FINE
+ | T4_RESOLUTION_R8_SUPERFINE
+ | T4_RESOLUTION_200_100
+ | T4_RESOLUTION_200_200
+ | T4_RESOLUTION_200_400;
s->supported_image_sizes = T4_SUPPORT_WIDTH_215MM
| T4_SUPPORT_LENGTH_US_LETTER
| T4_SUPPORT_LENGTH_US_LEGAL
SPAN_DECLARE(int) t30_set_supported_compressions(t30_state_t *s, int supported_compressions)
{
/* Mask out the ones we actually support today. */
- supported_compressions &= T4_SUPPORT_COMPRESSION_T4_1D
- | T4_SUPPORT_COMPRESSION_T4_2D
- | T4_SUPPORT_COMPRESSION_T6
- | T4_SUPPORT_COMPRESSION_T85
- | T4_SUPPORT_COMPRESSION_T85_L0
+ supported_compressions &= T4_COMPRESSION_T4_1D
+ | T4_COMPRESSION_T4_2D
+ | T4_COMPRESSION_T6
+ | T4_COMPRESSION_T85
+ | T4_COMPRESSION_T85_L0
#if defined(SPANDSP_SUPPORT_T88)
- | T4_SUPPORT_COMPRESSION_T88
+ | T4_COMPRESSION_T88
+#endif
+ //| T4_COMPRESSION_T42_T81
+#if defined(SPANDSP_SUPPORT_SYCC_T81)
+ | T4_COMPRESSION_SYCC_T81
#endif
- //| T4_SUPPORT_COMPRESSION_T81
#if defined(SPANDSP_SUPPORT_T43)
- | T4_SUPPORT_COMPRESSION_T43
+ | T4_COMPRESSION_T43
#endif
#if defined(SPANDSP_SUPPORT_T45)
- | T4_SUPPORT_COMPRESSION_T45
+ | T4_COMPRESSION_T45
#endif
#if 0
- | T4_SUPPORT_COMPRESSION_GRAYSCALE
- | T4_SUPPORT_COMPRESSION_COLOUR
- | T4_SUPPORT_COMPRESSION_12BIT
- | T4_SUPPORT_COMPRESSION_COLOUR_TO_GRAY
- | T4_SUPPORT_COMPRESSION_GRAY_TO_BILEVEL
- | T4_SUPPORT_COMPRESSION_COLOUR_TO_BILEVEL
- | T4_SUPPORT_COMPRESSION_RESCALING
+ | T4_COMPRESSION_GRAYSCALE
+ | T4_COMPRESSION_COLOUR
+ | T4_COMPRESSION_12BIT
+ | T4_COMPRESSION_COLOUR_TO_GRAY
+ | T4_COMPRESSION_GRAY_TO_BILEVEL
+ | T4_COMPRESSION_COLOUR_TO_BILEVEL
+ | T4_COMPRESSION_RESCALING
#endif
| 0;
s->supported_compressions = supported_compressions;
SPAN_DECLARE(int) t30_set_supported_bilevel_resolutions(t30_state_t *s, int supported_resolutions)
{
- supported_resolutions &= T4_SUPPORT_RESOLUTION_R8_STANDARD
- | T4_SUPPORT_RESOLUTION_R8_FINE
- | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
- | T4_SUPPORT_RESOLUTION_R16_SUPERFINE
- | T4_SUPPORT_RESOLUTION_200_100
- | T4_SUPPORT_RESOLUTION_200_200
- | T4_SUPPORT_RESOLUTION_200_400
- | T4_SUPPORT_RESOLUTION_300_300
- | T4_SUPPORT_RESOLUTION_300_600
- | T4_SUPPORT_RESOLUTION_400_400
- | T4_SUPPORT_RESOLUTION_400_800
- | T4_SUPPORT_RESOLUTION_600_600
- | T4_SUPPORT_RESOLUTION_600_1200
- | T4_SUPPORT_RESOLUTION_1200_1200;
+ supported_resolutions &= T4_RESOLUTION_R8_STANDARD
+ | T4_RESOLUTION_R8_FINE
+ | T4_RESOLUTION_R8_SUPERFINE
+ | T4_RESOLUTION_R16_SUPERFINE
+ | T4_RESOLUTION_200_100
+ | T4_RESOLUTION_200_200
+ | T4_RESOLUTION_200_400
+ | T4_RESOLUTION_300_300
+ | T4_RESOLUTION_300_600
+ | T4_RESOLUTION_400_400
+ | T4_RESOLUTION_400_800
+ | T4_RESOLUTION_600_600
+ | T4_RESOLUTION_600_1200
+ | T4_RESOLUTION_1200_1200;
/* Make sure anything needed for colour is enabled as a bi-level image, as that is a
rule from T.30. 100x100 is an exception, as it doesn't exist as a bi-level resolution. */
- supported_resolutions |= (s->supported_colour_resolutions & ~T4_SUPPORT_RESOLUTION_100_100);
+ supported_resolutions |= (s->supported_colour_resolutions & ~T4_RESOLUTION_100_100);
s->supported_bilevel_resolutions = supported_resolutions;
t30_build_dis_or_dtc(s);
return 0;
SPAN_DECLARE(int) t30_set_supported_colour_resolutions(t30_state_t *s, int supported_resolutions)
{
- supported_resolutions &= T4_SUPPORT_RESOLUTION_100_100
- | T4_SUPPORT_RESOLUTION_200_200
- | T4_SUPPORT_RESOLUTION_300_300
- | T4_SUPPORT_RESOLUTION_400_400
- | T4_SUPPORT_RESOLUTION_600_600
- | T4_SUPPORT_RESOLUTION_1200_1200;
+ supported_resolutions &= T4_RESOLUTION_100_100
+ | T4_RESOLUTION_200_200
+ | T4_RESOLUTION_300_300
+ | T4_RESOLUTION_400_400
+ | T4_RESOLUTION_600_600
+ | T4_RESOLUTION_1200_1200;
s->supported_colour_resolutions = supported_resolutions;
/* Make sure anything needed for colour is enabled as a bi-level image, as that is a
rule from T.30. 100x100 is an exception, as it doesn't exist as a bi-level resolution. */
- s->supported_bilevel_resolutions |= (s->supported_colour_resolutions & ~T4_SUPPORT_RESOLUTION_100_100);
+ s->supported_bilevel_resolutions |= (s->supported_colour_resolutions & ~T4_RESOLUTION_100_100);
t30_build_dis_or_dtc(s);
return 0;
}
{
/* Only provide for one form of coding throughout the file, even though the
coding on the wire could change between pages. */
- if ((s->supported_tiff_compressions & T4_SUPPORT_COMPRESSION_T85))
+ if ((s->supported_tiff_compressions & T4_COMPRESSION_T85))
s->tiff.compression = T4_COMPRESSION_T85;
- else if ((s->supported_tiff_compressions & T4_SUPPORT_COMPRESSION_T6))
+ else if ((s->supported_tiff_compressions & T4_COMPRESSION_T6))
s->tiff.compression = T4_COMPRESSION_T6;
- else if ((s->supported_tiff_compressions & T4_SUPPORT_COMPRESSION_T4_2D))
+ else if ((s->supported_tiff_compressions & T4_COMPRESSION_T4_2D))
s->tiff.compression = T4_COMPRESSION_T4_2D;
- else if ((s->supported_tiff_compressions & T4_SUPPORT_COMPRESSION_T4_1D))
+ else if ((s->supported_tiff_compressions & T4_COMPRESSION_T4_1D))
s->tiff.compression = T4_COMPRESSION_T4_1D;
}
else
{
- if ((s->supported_tiff_compressions & T4_SUPPORT_COMPRESSION_T42_T81))
+ if ((s->supported_tiff_compressions & T4_COMPRESSION_T42_T81))
s->tiff.compression = T4_COMPRESSION_T42_T81;
- else if ((s->supported_tiff_compressions & T4_SUPPORT_COMPRESSION_T43))
+ else if ((s->supported_tiff_compressions & T4_COMPRESSION_T43))
s->tiff.compression = T4_COMPRESSION_T43;
}
}
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100,
+ 1002,
COMPRESSION_CCITT_T4,
0
},
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100,
+ 1002,
COMPRESSION_CCITT_T4,
1
},
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100,
+ 237,
COMPRESSION_CCITT_T4,
2
},
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100,
+ 237,
COMPRESSION_CCITT_T4,
3
},
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100,
+ 400,
COMPRESSION_CCITT_T4,
4
},
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100,
+ 1079,
COMPRESSION_CCITT_T4,
5
},
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100,
+ 1728,
COMPRESSION_CCITT_T4,
6
},
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100,
+ 1079,
COMPRESSION_CCITT_T4,
5
},
int photo_metric = PHOTOMETRIC_MINISWHITE;
int fill_order = FILLORDER_LSB2MSB;
-static void clear_row(uint8_t buf[], int width)
+static void set_pixel(uint8_t buf[], int row, int pixel)
{
- memset(buf, 0, width/8 + 1);
+ row--;
+ buf[row*1728/8 + pixel/8] |= (0x80 >> (pixel & 0x07));
}
/*- End of function --------------------------------------------------------*/
-static void set_pixel(uint8_t buf[], int row, int pixel)
+static void set_pixel_range(uint8_t buf[], int row, int start, int end)
{
- row--;
- buf[row*1728/8 + pixel/8] |= (0x80 >> (pixel & 0x07));
+ int i;
+
+ for (i = start; i <= end; i++)
+ set_pixel(buf, row, i);
}
/*- End of function --------------------------------------------------------*/
}
/*- End of function --------------------------------------------------------*/
-static void set_pixel_range(uint8_t buf[], int row, int start, int end)
+static void clear_pixel_range(uint8_t buf[], int row, int start, int end)
{
int i;
for (i = start; i <= end; i++)
- set_pixel(buf, row, i);
+ clear_pixel(buf, row, i);
}
/*- End of function --------------------------------------------------------*/
-static void clear_pixel_range(uint8_t buf[], int row, int start, int end)
+static void clear_row(uint8_t buf[], int width)
{
- int i;
-
- for (i = start; i <= end; i++)
- clear_pixel(buf, row, i);
+ memset(buf, 0, width/8 + 1);
}
/*- End of function --------------------------------------------------------*/
TIFFSetField(tiff_file, TIFFTAG_BITSPERSAMPLE, 1);
TIFFSetField(tiff_file, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
TIFFSetField(tiff_file, TIFFTAG_SAMPLESPERPIXEL, 1);
- TIFFSetField(tiff_file, TIFFTAG_ROWSPERSTRIP, -1L);
TIFFSetField(tiff_file, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(tiff_file, TIFFTAG_PHOTOMETRIC, photo_metric);
TIFFSetField(tiff_file, TIFFTAG_FILLORDER, fill_order);
image_length = sequence[i].length;
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
+ TIFFSetField(tiff_file, TIFFTAG_ROWSPERSTRIP, 128);
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
TIFFCheckpointDirectory(tiff_file);
break;
}
/* ....then the directory entry, and libtiff is happy. */
- TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
+ if (image_length != sequence[i].length)
+ {
+ printf("Length mismatch - %d: %d vs %d\n", i, image_length, sequence[i].length);
+ exit(2);
+ }
TIFFWriteDirectory(tiff_file);
}
{
int image_width;
int row;
- int resunit;
int output_compression;
int output_t4_options;
uint8_t image_buffer[1024];
TIFFSetField(tiff_file, TIFFTAG_BITSPERSAMPLE, 1);
TIFFSetField(tiff_file, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
TIFFSetField(tiff_file, TIFFTAG_SAMPLESPERPIXEL, 1);
- TIFFSetField(tiff_file, TIFFTAG_ROWSPERSTRIP, -1L);
TIFFSetField(tiff_file, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(tiff_file, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE);
TIFFSetField(tiff_file, TIFFTAG_FILLORDER, FILLORDER_LSB2MSB);
y_resolution = y_res/100.0f;
TIFFSetField(tiff_file, TIFFTAG_XRESOLUTION, floorf(x_resolution*2.54f + 0.5f));
TIFFSetField(tiff_file, TIFFTAG_YRESOLUTION, floorf(y_resolution*2.54f + 0.5f));
- resunit = RESUNIT_INCH;
- TIFFSetField(tiff_file, TIFFTAG_RESOLUTIONUNIT, resunit);
+ TIFFSetField(tiff_file, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
- TIFFSetField(tiff_file, TIFFTAG_SOFTWARE, "spandsp");
if (gethostname(buf, sizeof(buf)) == 0)
TIFFSetField(tiff_file, TIFFTAG_HOSTCOMPUTER, buf);
+ TIFFSetField(tiff_file, TIFFTAG_SOFTWARE, "Spandsp");
TIFFSetField(tiff_file, TIFFTAG_IMAGEDESCRIPTION, "Checkerboard or dithered ones");
TIFFSetField(tiff_file, TIFFTAG_MAKE, "soft-switch.org");
- TIFFSetField(tiff_file, TIFFTAG_MODEL, "test data");
+ TIFFSetField(tiff_file, TIFFTAG_MODEL, "testy");
time(&now);
tm = localtime(&now);
tm->tm_sec);
TIFFSetField(tiff_file, TIFFTAG_DATETIME, buf);
+ TIFFSetField(tiff_file, TIFFTAG_ROWSPERSTRIP, image_length);
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
* SpanDSP - a series of DSP components for telephony
*
* generate_sized_pages.c - Create a series of TIFF files in the various page sizes
- * and resolutions.
+ * and resolutions.
*
* Written by Steve Underwood <steveu@coppice.org>
*
int y_res;
int width;
int length;
+ int squashing_factor;
} sequence[] =
{
{
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
- 1100
+ 1100,
+ 1
},
{
"bilevel_R8_385_B4.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_B4,
- 1200
+ 1200,
+ 1
},
{
"bilevel_R8_385_A3.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A3,
- 1556
+ 1556,
+ 1
},
{
"bilevel_R8_77_A4.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_FINE,
T4_WIDTH_R8_A4,
- 1100*2
+ 1100*2,
+ 1
},
{
"bilevel_R8_77_B4.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_FINE,
T4_WIDTH_R8_B4,
- 1200*2
+ 1200*2,
+ 1
},
{
"bilevel_R8_77_A3.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_FINE,
T4_WIDTH_R8_A3,
- 1556*2
+ 1556*2,
+ 1
},
{
"bilevel_R8_154_A4.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_SUPERFINE,
T4_WIDTH_R8_A4,
- 1100*4
+ 1100*4,
+ 1
},
{
"bilevel_R8_154_B4.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_SUPERFINE,
T4_WIDTH_R8_B4,
- 1200*4
+ 1200*4,
+ 1
},
{
"bilevel_R8_154_A3.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_SUPERFINE,
T4_WIDTH_R8_A3,
- 1556*4
+ 1556*4,
+ 1
},
{
"bilevel_R16_154_A4.tif",
T4_X_RESOLUTION_R16,
T4_Y_RESOLUTION_SUPERFINE,
T4_WIDTH_R16_A4,
- 1100*4
+ 1100*4,
+ 1
},
{
"bilevel_R16_154_B4.tif",
T4_X_RESOLUTION_R16,
T4_Y_RESOLUTION_SUPERFINE,
T4_WIDTH_R16_B4,
- 1200*4
+ 1200*4,
+ 1
},
{
"bilevel_R16_154_A3.tif",
T4_X_RESOLUTION_R16,
T4_Y_RESOLUTION_SUPERFINE,
T4_WIDTH_R16_A3,
- 1556*4
+ 1556*4,
+ 1
},
{
"bilevel_200_100_A4.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_100,
T4_WIDTH_200_A4,
- 1100
+ 1100,
+ 1
},
{
"bilevel_200_100_B4.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_100,
T4_WIDTH_200_B4,
- 1200
+ 1200,
+ 1
},
{
"bilevel_200_100_A3.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_100,
T4_WIDTH_200_A3,
- 1556
+ 1556,
+ 1
},
{
"bilevel_200_200_A4.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_200,
T4_WIDTH_200_A4,
- 1100*2
+ 1100*2,
+ 1
},
{
"bilevel_200_200_B4.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_200,
T4_WIDTH_200_B4,
- 1200*2
+ 1200*2,
+ 1
},
{
"bilevel_200_200_A3.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_200,
T4_WIDTH_200_A3,
- 1556*2
+ 1556*2,
+ 1
},
{
"bilevel_200_400_A4.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_400,
T4_WIDTH_200_A4,
- 1100*4
+ 1100*4,
+ 1
},
{
"bilevel_200_400_B4.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_400,
T4_WIDTH_200_B4,
- 1200*4
+ 1200*4,
+ 1
},
{
"bilevel_200_400_A3.tif",
T4_X_RESOLUTION_200,
T4_Y_RESOLUTION_400,
T4_WIDTH_200_A3,
- 1556*4
+ 1556*4,
+ 1
},
{
"bilevel_300_300_A4.tif",
T4_X_RESOLUTION_300,
T4_Y_RESOLUTION_300,
T4_WIDTH_300_A4,
- 1100*3
+ 1100*3,
+ 1
},
{
"bilevel_300_300_B4.tif",
T4_X_RESOLUTION_300,
T4_Y_RESOLUTION_300,
T4_WIDTH_300_B4,
- 1200*3
+ 1200*3,
+ 1
},
{
"bilevel_300_300_A3.tif",
T4_X_RESOLUTION_300,
T4_Y_RESOLUTION_300,
T4_WIDTH_300_A3,
- 1556*3
+ 1556*3,
+ 1
},
{
"bilevel_300_600_A4.tif",
T4_X_RESOLUTION_300,
T4_Y_RESOLUTION_600,
T4_WIDTH_300_A4,
- 1100*6
+ 1100*6,
+ 1
},
{
"bilevel_300_600_B4.tif",
T4_X_RESOLUTION_300,
T4_Y_RESOLUTION_600,
T4_WIDTH_300_B4,
- 1200*6
+ 1200*6,
+ 1
},
{
"bilevel_300_600_A3.tif",
T4_X_RESOLUTION_300,
T4_Y_RESOLUTION_600,
T4_WIDTH_300_A3,
- 1556*6
+ 1556*6,
+ 1
},
{
"bilevel_400_400_A4.tif",
T4_X_RESOLUTION_400,
T4_Y_RESOLUTION_400,
T4_WIDTH_400_A4,
- 1100*4
+ 1100*4,
+ 1
},
{
"bilevel_400_400_B4.tif",
T4_X_RESOLUTION_400,
T4_Y_RESOLUTION_400,
T4_WIDTH_400_B4,
- 1200*4
+ 1200*4,
+ 1
},
{
"bilevel_400_400_A3.tif",
T4_X_RESOLUTION_400,
T4_Y_RESOLUTION_400,
T4_WIDTH_400_A3,
- 1556*4
+ 1556*4,
+ 1
},
{
"bilevel_400_800_A4.tif",
T4_X_RESOLUTION_400,
T4_Y_RESOLUTION_800,
T4_WIDTH_400_A4,
- 1100*8
+ 1100*8,
+ 1
},
{
"bilevel_400_800_B4.tif",
T4_X_RESOLUTION_400,
T4_Y_RESOLUTION_800,
T4_WIDTH_400_B4,
- 1200*8
+ 1200*8,
+ 1
},
{
"bilevel_400_800_A3.tif",
T4_X_RESOLUTION_400,
T4_Y_RESOLUTION_800,
T4_WIDTH_400_A3,
- 1556*8
+ 1556*8,
+ 1
},
{
"bilevel_600_600_A4.tif",
T4_X_RESOLUTION_600,
T4_Y_RESOLUTION_600,
T4_WIDTH_600_A4,
- 1100*6
+ 1100*6,
+ 1
},
{
"bilevel_600_600_B4.tif",
T4_X_RESOLUTION_600,
T4_Y_RESOLUTION_600,
T4_WIDTH_600_B4,
- 1200*6
+ 1200*6,
+ 1
},
{
"bilevel_600_600_A3.tif",
T4_X_RESOLUTION_600,
T4_Y_RESOLUTION_600,
T4_WIDTH_600_A3,
- 1556*6
+ 1556*6,
+ 1
},
{
"bilevel_600_1200_A4.tif",
T4_X_RESOLUTION_600,
T4_Y_RESOLUTION_1200,
T4_WIDTH_600_A4,
- 1100*12
+ 1100*12,
+ 1
},
{
"bilevel_600_1200_B4.tif",
T4_X_RESOLUTION_600,
T4_Y_RESOLUTION_1200,
T4_WIDTH_600_B4,
- 1200*12
+ 1200*12,
+ 1
},
{
"bilevel_600_1200_A3.tif",
T4_X_RESOLUTION_600,
T4_Y_RESOLUTION_1200,
T4_WIDTH_600_A3,
- 1556*12
+ 1556*12,
+ 1
},
{
"bilevel_1200_1200_A4.tif",
T4_X_RESOLUTION_1200,
T4_Y_RESOLUTION_1200,
T4_WIDTH_1200_A4,
- 1100*12
+ 1100*12,
+ 1
},
{
"bilevel_1200_1200_B4.tif",
T4_X_RESOLUTION_1200,
T4_Y_RESOLUTION_1200,
T4_WIDTH_1200_B4,
- 1200*12
+ 1200*12,
+ 1
},
{
"bilevel_1200_1200_A3.tif",
T4_X_RESOLUTION_1200,
T4_Y_RESOLUTION_1200,
T4_WIDTH_1200_A3,
- 1556*12
+ 1556*12,
+ 1
+ },
+ {
+ "bilevel_R8_77SQ_A4.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_STANDARD,
+ T4_WIDTH_R8_A4,
+ 1100,
+ 2
+ },
+ {
+ "bilevel_R8_77SQ_B4.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_STANDARD,
+ T4_WIDTH_R8_B4,
+ 1200,
+ 2
+ },
+ {
+ "bilevel_R8_77SQ_A3.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_STANDARD,
+ T4_WIDTH_R8_A3,
+ 1556,
+ 2
+ },
+ {
+ "bilevel_R8_154SQSQ_A4.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_STANDARD,
+ T4_WIDTH_R8_A4,
+ 1100,
+ 4
+ },
+ {
+ "bilevel_R8_154SQSQ_B4.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_STANDARD,
+ T4_WIDTH_R8_B4,
+ 1200,
+ 4
+ },
+ {
+ "bilevel_R8_154SQSQ_A3.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_STANDARD,
+ T4_WIDTH_R8_A3,
+ 1556,
+ 4
+ },
+ {
+ "bilevel_R8_154SQ_A4.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_FINE,
+ T4_WIDTH_R8_A4,
+ 1100*2,
+ 2
+ },
+ {
+ "bilevel_R8_154SQ_B4.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_FINE,
+ T4_WIDTH_R8_B4,
+ 1200*2,
+ 2
+ },
+ {
+ "bilevel_R8_154SQ_A3.tif",
+ T4_X_RESOLUTION_R8,
+ T4_Y_RESOLUTION_FINE,
+ T4_WIDTH_R8_A3,
+ 1556*2,
+ 2
+ },
+ {
+ "bilevel_200_200SQ_A4.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_100,
+ T4_WIDTH_200_A4,
+ 1100,
+ 2
+ },
+ {
+ "bilevel_200_200SQ_B4.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_100,
+ T4_WIDTH_200_B4,
+ 1200,
+ 2
+ },
+ {
+ "bilevel_200_200SQ_A3.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_100,
+ T4_WIDTH_200_A3,
+ 1556,
+ 2
+ },
+ {
+ "bilevel_200_400SQSQ_A4.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_100,
+ T4_WIDTH_200_A4,
+ 1100,
+ 4
+ },
+ {
+ "bilevel_200_400SQSQ_B4.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_100,
+ T4_WIDTH_200_B4,
+ 1200,
+ 4
+ },
+ {
+ "bilevel_200_400SQSQ_A3.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_100,
+ T4_WIDTH_200_A3,
+ 1556,
+ 4
+ },
+ {
+ "bilevel_200_400SQ_A4.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_200,
+ T4_WIDTH_200_A4,
+ 1100*2,
+ 2
+ },
+ {
+ "bilevel_200_400SQ_B4.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_200,
+ T4_WIDTH_200_B4,
+ 1200*2,
+ 2
+ },
+ {
+ "bilevel_200_400SQ_A3.tif",
+ T4_X_RESOLUTION_200,
+ T4_Y_RESOLUTION_200,
+ T4_WIDTH_200_A3,
+ 1556*2,
+ 2
},
{
NULL,
0,
0,
0,
+ 0,
0
},
};
+static void set_pixel(uint8_t buf[], int row, int pixel)
+{
+ row--;
+ buf[row*1728/8 + pixel/8] |= (0x80 >> (pixel & 0x07));
+}
+/*- End of function --------------------------------------------------------*/
+
+static void set_pixel_range(uint8_t buf[], int row, int start, int end)
+{
+ int i;
+
+ for (i = start; i <= end; i++)
+ set_pixel(buf, row, i);
+}
+/*- End of function --------------------------------------------------------*/
+
+#if 0
+static void clear_pixel(uint8_t buf[], int row, int pixel)
+{
+ row--;
+ buf[row*1728/8 + pixel/8] &= ~(0x80 >> (pixel & 0x07));
+}
+/*- End of function --------------------------------------------------------*/
+
+static void clear_pixel_range(uint8_t buf[], int row, int start, int end)
+{
+ int i;
+
+ for (i = start; i <= end; i++)
+ clear_pixel(buf, row, i);
+}
+/*- End of function --------------------------------------------------------*/
+#endif
+
+static void clear_row(uint8_t buf[], int width)
+{
+ memset(buf, 0, width/8 + 1);
+}
+/*- End of function --------------------------------------------------------*/
+
int main(int argc, char *argv[])
{
int row;
float x_resolution;
float y_resolution;
int i;
+ int j;
+ int k;
int opt;
int compression;
int photo_metric;
TIFFSetField(tiff_file, TIFFTAG_BITSPERSAMPLE, 1);
TIFFSetField(tiff_file, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
TIFFSetField(tiff_file, TIFFTAG_SAMPLESPERPIXEL, 1);
- TIFFSetField(tiff_file, TIFFTAG_ROWSPERSTRIP, -1L);
TIFFSetField(tiff_file, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(tiff_file, TIFFTAG_PHOTOMETRIC, photo_metric);
TIFFSetField(tiff_file, TIFFTAG_FILLORDER, fill_order);
TIFFSetField(tiff_file, TIFFTAG_YRESOLUTION, floorf(y_resolution*2.54f + 0.5f));
TIFFSetField(tiff_file, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
- TIFFSetField(tiff_file, TIFFTAG_SOFTWARE, "spandsp");
if (gethostname(buf, sizeof(buf)) == 0)
TIFFSetField(tiff_file, TIFFTAG_HOSTCOMPUTER, buf);
- TIFFSetField(tiff_file, TIFFTAG_IMAGEDESCRIPTION, "Blank test image");
+ TIFFSetField(tiff_file, TIFFTAG_SOFTWARE, "Spandsp");
+ TIFFSetField(tiff_file, TIFFTAG_IMAGEDESCRIPTION, "Diagonally striped test image");
TIFFSetField(tiff_file, TIFFTAG_MAKE, "soft-switch.org");
- TIFFSetField(tiff_file, TIFFTAG_MODEL, "test data");
+ TIFFSetField(tiff_file, TIFFTAG_MODEL, "testy");
time(&now);
tm = localtime(&now);
tm->tm_sec);
TIFFSetField(tiff_file, TIFFTAG_DATETIME, buf);
+ TIFFSetField(tiff_file, TIFFTAG_ROWSPERSTRIP, sequence[i].length);
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, sequence[i].length);
TIFFSetField(tiff_file, TIFFTAG_PAGENUMBER, 0, 1);
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
TIFFCheckpointDirectory(tiff_file);
/* Write the image first.... */
+ /* Produce a pattern of diagonal bands */
for (row = 0; row < sequence[i].length; row++)
{
- memset(image_buffer, 0, sequence[i].width/8 + 1);
+ clear_row(image_buffer, sequence[i].width);
+ for (j = 0; j < sequence[i].squashing_factor; j++)
+ {
+ k = row*sequence[i].squashing_factor + j;
+ if (((k/sequence[i].width) & 1) == 0)
+ set_pixel_range(image_buffer, 1, k%sequence[i].width, sequence[i].width - 1);
+ else
+ set_pixel_range(image_buffer, 1, 0, k%sequence[i].width);
+ }
if (TIFFWriteScanline(tiff_file, image_buffer, row, 0) < 0)
{
printf("Write error at row %d.\n", row);
TIFFSetField(tiff_file, TIFFTAG_XRESOLUTION, 204.0f);
TIFFSetField(tiff_file, TIFFTAG_YRESOLUTION, 196.0f);
TIFFSetField(tiff_file, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
- TIFFSetField(tiff_file, TIFFTAG_SOFTWARE, "Spandsp");
- TIFFSetField(tiff_file, TIFFTAG_HOSTCOMPUTER, "host");
TIFFSetField(tiff_file, TIFFTAG_FAXSUBADDRESS, "1111");
+
+ if (gethostname(buf, sizeof(buf)) == 0)
+ TIFFSetField(tiff_file, TIFFTAG_HOSTCOMPUTER, buf);
+
+ TIFFSetField(tiff_file, TIFFTAG_SOFTWARE, "Spandsp");
TIFFSetField(tiff_file, TIFFTAG_IMAGEDESCRIPTION, "Image in stripes");
- TIFFSetField(tiff_file, TIFFTAG_MAKE, "spandsp");
+ TIFFSetField(tiff_file, TIFFTAG_MAKE, "soft-switch.org");
TIFFSetField(tiff_file, TIFFTAG_MODEL, "testy");
time(&now);
case 0:
/* Allow anything */
t30_set_supported_bilevel_resolutions(t30_state[i],
- T4_SUPPORT_RESOLUTION_R8_STANDARD
- | T4_SUPPORT_RESOLUTION_R8_FINE
- | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
- | T4_SUPPORT_RESOLUTION_R16_SUPERFINE
- | T4_SUPPORT_RESOLUTION_200_100
- | T4_SUPPORT_RESOLUTION_200_200
- | T4_SUPPORT_RESOLUTION_200_400
- | T4_SUPPORT_RESOLUTION_300_300
- | T4_SUPPORT_RESOLUTION_300_600
- | T4_SUPPORT_RESOLUTION_400_400
- | T4_SUPPORT_RESOLUTION_400_800
- | T4_SUPPORT_RESOLUTION_600_600
- | T4_SUPPORT_RESOLUTION_600_1200
- | T4_SUPPORT_RESOLUTION_1200_1200);
+ T4_RESOLUTION_R8_STANDARD
+ | T4_RESOLUTION_R8_FINE
+ | T4_RESOLUTION_R8_SUPERFINE
+ | T4_RESOLUTION_R16_SUPERFINE
+ | T4_RESOLUTION_200_100
+ | T4_RESOLUTION_200_200
+ | T4_RESOLUTION_200_400
+ | T4_RESOLUTION_300_300
+ | T4_RESOLUTION_300_600
+ | T4_RESOLUTION_400_400
+ | T4_RESOLUTION_400_800
+ | T4_RESOLUTION_600_600
+ | T4_RESOLUTION_600_1200
+ | T4_RESOLUTION_1200_1200);
break;
case 1:
/* Allow anything metric */
t30_set_supported_bilevel_resolutions(t30_state[i],
- T4_SUPPORT_RESOLUTION_R8_STANDARD
- | T4_SUPPORT_RESOLUTION_R8_FINE
- | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
- | T4_SUPPORT_RESOLUTION_R16_SUPERFINE);
+ T4_RESOLUTION_R8_STANDARD
+ | T4_RESOLUTION_R8_FINE
+ | T4_RESOLUTION_R8_SUPERFINE
+ | T4_RESOLUTION_R16_SUPERFINE);
break;
case 2:
/* Allow anything inch based */
t30_set_supported_bilevel_resolutions(t30_state[i],
- T4_SUPPORT_RESOLUTION_200_100
- | T4_SUPPORT_RESOLUTION_200_200
- | T4_SUPPORT_RESOLUTION_200_400
- | T4_SUPPORT_RESOLUTION_300_300
- | T4_SUPPORT_RESOLUTION_300_600
- | T4_SUPPORT_RESOLUTION_400_400
- | T4_SUPPORT_RESOLUTION_400_800
- | T4_SUPPORT_RESOLUTION_600_600
- | T4_SUPPORT_RESOLUTION_600_1200
- | T4_SUPPORT_RESOLUTION_1200_1200);
+ T4_RESOLUTION_200_100
+ | T4_RESOLUTION_200_200
+ | T4_RESOLUTION_200_400
+ | T4_RESOLUTION_300_300
+ | T4_RESOLUTION_300_600
+ | T4_RESOLUTION_400_400
+ | T4_RESOLUTION_400_800
+ | T4_RESOLUTION_600_600
+ | T4_RESOLUTION_600_1200
+ | T4_RESOLUTION_1200_1200);
break;
case 3:
/* Allow only restricted length resolution */
t30_set_supported_bilevel_resolutions(t30_state[i],
- T4_SUPPORT_RESOLUTION_R8_STANDARD
- | T4_SUPPORT_RESOLUTION_R8_FINE
- | T4_SUPPORT_RESOLUTION_200_100
- | T4_SUPPORT_RESOLUTION_200_200);
+ T4_RESOLUTION_R8_STANDARD
+ | T4_RESOLUTION_R8_FINE
+ | T4_RESOLUTION_200_100
+ | T4_RESOLUTION_200_200);
break;
case 4:
/* Allow only more restricted length resolution */
t30_set_supported_bilevel_resolutions(t30_state[i],
- T4_SUPPORT_RESOLUTION_R8_STANDARD
- | T4_SUPPORT_RESOLUTION_200_100);
+ T4_RESOLUTION_R8_STANDARD
+ | T4_RESOLUTION_200_100);
break;
}
if (colour_enabled)
{
t30_set_supported_colour_resolutions(t30_state[i],
- T4_SUPPORT_RESOLUTION_100_100
- | T4_SUPPORT_RESOLUTION_200_200
- | T4_SUPPORT_RESOLUTION_300_300
- | T4_SUPPORT_RESOLUTION_400_400
- | T4_SUPPORT_RESOLUTION_600_600
- | T4_SUPPORT_RESOLUTION_1200_1200);
+ T4_RESOLUTION_100_100
+ | T4_RESOLUTION_200_200
+ | T4_RESOLUTION_300_300
+ | T4_RESOLUTION_400_400
+ | T4_RESOLUTION_600_600
+ | T4_RESOLUTION_1200_1200);
}
else
{
t30_set_supported_colour_resolutions(t30_state[i], 0);
}
- t30_set_supported_output_compressions(t30_state[i], T4_SUPPORT_COMPRESSION_T4_2D);
+ t30_set_supported_output_compressions(t30_state[i], T4_COMPRESSION_T4_2D);
t30_set_ecm_capability(t30_state[i], use_ecm);
t30_set_supported_compressions(t30_state[i],
- T4_SUPPORT_COMPRESSION_T4_1D
- | T4_SUPPORT_COMPRESSION_T4_2D
- | T4_SUPPORT_COMPRESSION_T6
- //| T4_SUPPORT_COMPRESSION_t42_T81
- | T4_SUPPORT_COMPRESSION_T85
- | T4_SUPPORT_COMPRESSION_T85_L0);
+ T4_COMPRESSION_T4_1D
+ | T4_COMPRESSION_T4_2D
+ | T4_COMPRESSION_T6
+ | T4_COMPRESSION_T85
+ | T4_COMPRESSION_T85_L0
+#if 0
+ //| T4_COMPRESSION_T88
+ | T4_COMPRESSION_T43
+ | T4_COMPRESSION_T45
+ | T4_COMPRESSION_T42_T81
+ | T4_COMPRESSION_SYCC_T81
+ | T4_COMPRESSION_GRAYSCALE
+ | T4_COMPRESSION_COLOUR
+ | T4_COMPRESSION_12BIT
+ | T4_COMPRESSION_COLOUR_TO_GRAY
+ | T4_COMPRESSION_GRAY_TO_BILEVEL
+ | T4_COMPRESSION_COLOUR_TO_BILEVEL
+ | T4_COMPRESSION_RESCALING
+#endif
+ | 0);
t30_set_minimum_scan_line_time(t30_state[i], scan_line_time);
if (mode[i] == T38_GATEWAY_FAX)
echo tested ${FILE}
}
+run_fax_squash_test()
+{
+ # Test with lengthwise squashing of a bilevel image
+ rm -f fax_tests.tif
+ echo ./fax_tests -b ${SQ} ${OPTS} -i ${IN_FILE}
+ ./fax_tests -b ${SQ} ${OPTS} -i ${IN_FILE} >xyzzy 2>xyzzy2
+ RETVAL=$?
+ if [ $RETVAL != 0 ]
+ then
+ echo fax_tests failed!
+ exit $RETVAL
+ fi
+ # Now use tiffcmp to check the results. It will return non-zero if any page images differ. The -t
+ # option means the normal differences in tags will be ignored.
+ tiffcmp -t ${OUT_FILE} fax_tests.tif >/dev/null
+ RETVAL=$?
+ if [ $RETVAL != 0 ]
+ then
+ echo fax_tests failed!
+ exit $RETVAL
+ fi
+ rm -f fax_tests.tif
+ echo tested ${FILE}
+}
+
run_colour_fax_test()
{
rm -f fax_tests.tif
# run_colour_fax_test
done
-# Colour/gray -> colour/gray by allowing ECM
+# Colour/gray -> colour/gray
for OPTS in "-p AA -C -e" "-p TT -C -e" "-p GG -C -e" "-p TG -C -e" "-p GT -C -e"
do
echo Colour to colour tests disabled
# IN_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
-# OUT_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
+# OUT_FILE="${LOCALTESTS_DIR}/lenna-colour-out.tif"
# run_colour_fax_test
# IN_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
-# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
+# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw-out.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/c03x_02x.tif"
-# OUT_FILE="${TIFFFX_DIR}/c03x_02x.tif"
+# OUT_FILE="${TIFFFX_DIR}/c03x_02x-out.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/l02x_02x.tif"
# run_colour_fax_test
done
+# Bi-level tests with image squashing
+for OPTS in "-p AA" "-p AA -e" "-p TT" "-p TT -e" "-p GG" "-p GG -e" "-p TG" "-p TG -e" "-p GT" "-p GT -e"
+do
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_77_A4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_77SQ_A4.tif"
+ SQ=4
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_77_B4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_77SQ_B4.tif"
+ SQ=4
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_77_A3.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_77SQ_A3.tif"
+ SQ=4
+ run_fax_squash_test
+
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_A4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQ_A4.tif"
+ SQ=3
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_B4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQ_B4.tif"
+ SQ=3
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_A3.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQ_A3.tif"
+ SQ=3
+ run_fax_squash_test
+
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_A4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQSQ_A4.tif"
+ SQ=4
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_B4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQSQ_B4.tif"
+ SQ=4
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_A3.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQSQ_A3.tif"
+ SQ=4
+ run_fax_squash_test
+
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_200_A4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_200SQ_A4.tif"
+ SQ=4
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_200_B4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_200SQ_B4.tif"
+ SQ=4
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_200_A3.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_200SQ_A3.tif"
+ SQ=4
+ run_fax_squash_test
+
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_A4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQ_A4.tif"
+ SQ=3
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_B4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQ_B4.tif"
+ SQ=3
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_A3.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQ_A3.tif"
+ SQ=3
+ run_fax_squash_test
+
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_A4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQSQ_A4.tif"
+ SQ=4
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_B4.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQSQ_B4.tif"
+ SQ=4
+ run_fax_squash_test
+
+ IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_A3.tif"
+ OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQSQ_A3.tif"
+ SQ=4
+ run_fax_squash_test
+done
+
# Bi-level tests
for OPTS in "-p AA" "-p AA -e" "-p TT" "-p TT -e" "-p GG" "-p GG -e" "-p TG" "-p TG -e" "-p GT" "-p GT -e"
do
t30_set_phase_d_handler(t30, phase_d_handler, (void *) (intptr_t) 'A');
t30_set_phase_e_handler(t30, phase_e_handler, (void *) (intptr_t) 'A');
t30_set_ecm_capability(t30, use_ecm);
- t30_set_supported_compressions(t30, T4_SUPPORT_COMPRESSION_T4_1D | T4_SUPPORT_COMPRESSION_T4_2D | T4_SUPPORT_COMPRESSION_T6 | T4_SUPPORT_COMPRESSION_T85);
+ t30_set_supported_compressions(t30, T4_COMPRESSION_T4_1D | T4_COMPRESSION_T4_2D | T4_COMPRESSION_T6 | T4_COMPRESSION_T85);
if (pcap_scan_pkts(input_file_name, src_addr, src_port, dest_addr, dest_port, t38_terminal_timing_update, process_packet, NULL))
exit(2);
t30_set_phase_d_handler(t30, phase_d_handler, (void *) (intptr_t) 'B');
t30_set_phase_e_handler(t30, phase_e_handler, (void *) (intptr_t) 'B');
t30_set_ecm_capability(t30, use_ecm);
- t30_set_supported_compressions(t30, T4_SUPPORT_COMPRESSION_T4_1D | T4_SUPPORT_COMPRESSION_T4_2D | T4_SUPPORT_COMPRESSION_T6);
+ t30_set_supported_compressions(t30, T4_COMPRESSION_T4_1D | T4_COMPRESSION_T4_2D | T4_COMPRESSION_T6);
logging = fax_get_logging_state(fax_state);
span_log_set_level(logging, SPAN_LOG_DEBUG | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME);
| T4_SUPPORT_LENGTH_US_LEGAL
| T4_SUPPORT_LENGTH_UNLIMITED);
t30_set_supported_bilevel_resolutions(t30,
- T4_SUPPORT_RESOLUTION_R8_STANDARD
- | T4_SUPPORT_RESOLUTION_R8_FINE
- | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
- | T4_SUPPORT_RESOLUTION_R16_SUPERFINE
- | T4_SUPPORT_RESOLUTION_200_100
- | T4_SUPPORT_RESOLUTION_200_200
- | T4_SUPPORT_RESOLUTION_200_400
- | T4_SUPPORT_RESOLUTION_300_300
- | T4_SUPPORT_RESOLUTION_300_600
- | T4_SUPPORT_RESOLUTION_400_400
- | T4_SUPPORT_RESOLUTION_400_800
- | T4_SUPPORT_RESOLUTION_600_600
- | T4_SUPPORT_RESOLUTION_600_1200
- | T4_SUPPORT_RESOLUTION_1200_1200);
+ T4_RESOLUTION_R8_STANDARD
+ | T4_RESOLUTION_R8_FINE
+ | T4_RESOLUTION_R8_SUPERFINE
+ | T4_RESOLUTION_R16_SUPERFINE
+ | T4_RESOLUTION_200_100
+ | T4_RESOLUTION_200_200
+ | T4_RESOLUTION_200_400
+ | T4_RESOLUTION_300_300
+ | T4_RESOLUTION_300_600
+ | T4_RESOLUTION_400_400
+ | T4_RESOLUTION_400_800
+ | T4_RESOLUTION_600_600
+ | T4_RESOLUTION_600_1200
+ | T4_RESOLUTION_1200_1200);
t30_set_supported_colour_resolutions(t30, 0);
t30_set_supported_modems(t30, T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17);
- t30_set_supported_compressions(t30, T4_SUPPORT_COMPRESSION_T4_1D | T4_SUPPORT_COMPRESSION_T4_2D | T4_SUPPORT_COMPRESSION_T6);
+ t30_set_supported_compressions(t30, T4_COMPRESSION_T4_1D | T4_COMPRESSION_T4_2D | T4_COMPRESSION_T6);
t30_set_phase_b_handler(t30, phase_b_handler, (void *) (intptr_t) 'A');
t30_set_phase_d_handler(t30, phase_d_handler, (void *) (intptr_t) 'A');
t30_set_phase_e_handler(t30, phase_e_handler, (void *) (intptr_t) 'A');
T4_SUPPORT_LENGTH_US_LETTER | T4_SUPPORT_LENGTH_US_LEGAL | T4_SUPPORT_LENGTH_UNLIMITED
| T4_SUPPORT_WIDTH_215MM | T4_SUPPORT_WIDTH_255MM | T4_SUPPORT_WIDTH_303MM);
t30_set_supported_bilevel_resolutions(t30,
- T4_SUPPORT_RESOLUTION_R8_STANDARD
- | T4_SUPPORT_RESOLUTION_R8_FINE
- | T4_SUPPORT_RESOLUTION_R8_SUPERFINE
- | T4_SUPPORT_RESOLUTION_R16_SUPERFINE
- | T4_SUPPORT_RESOLUTION_200_100
- | T4_SUPPORT_RESOLUTION_200_200
- | T4_SUPPORT_RESOLUTION_200_400
- | T4_SUPPORT_RESOLUTION_400_400);
+ T4_RESOLUTION_R8_STANDARD
+ | T4_RESOLUTION_R8_FINE
+ | T4_RESOLUTION_R8_SUPERFINE
+ | T4_RESOLUTION_R16_SUPERFINE
+ | T4_RESOLUTION_200_100
+ | T4_RESOLUTION_200_200
+ | T4_RESOLUTION_200_400
+ | T4_RESOLUTION_400_400);
t30_set_supported_colour_resolutions(t30, 0);
if (pvt->disable_v17) {
}
if (pvt->use_ecm) {
- t30_set_supported_compressions(t30, T4_SUPPORT_COMPRESSION_T4_1D | T4_SUPPORT_COMPRESSION_T4_2D | T4_SUPPORT_COMPRESSION_T6 | T4_SUPPORT_COMPRESSION_T85 | T4_SUPPORT_COMPRESSION_T85_L0);
+ t30_set_supported_compressions(t30, T4_COMPRESSION_T4_1D | T4_COMPRESSION_T4_2D | T4_COMPRESSION_T6 | T4_COMPRESSION_T85 | T4_COMPRESSION_T85_L0);
t30_set_ecm_capability(t30, TRUE);
switch_channel_set_variable(channel, "fax_ecm_requested", "1");
} else {
- t30_set_supported_compressions(t30, T4_SUPPORT_COMPRESSION_T4_1D | T4_SUPPORT_COMPRESSION_T4_2D);
+ t30_set_supported_compressions(t30, T4_COMPRESSION_T4_1D | T4_COMPRESSION_T4_2D);
switch_channel_set_variable(channel, "fax_ecm_requested", "0");
}