diff --git a/libs/spandsp/src/spandsp/private/t30.h b/libs/spandsp/src/spandsp/private/t30.h index 933995d46b..5965a697e6 100644 --- a/libs/spandsp/src/spandsp/private/t30.h +++ b/libs/spandsp/src/spandsp/private/t30.h @@ -54,7 +54,7 @@ struct t30_state_s int supported_compressions; /*! \brief A bit mask of the currently supported bi-level image resolutions. */ int supported_bilevel_resolutions; - /*! \brief A bit mask of the currently supported colour image resolutions. */ + /*! \brief A bit mask of the currently supported gray-scale and colour image resolutions. */ int supported_colour_resolutions; /*! \brief A bit mask of the currently supported image sizes. */ int supported_image_sizes; diff --git a/libs/spandsp/src/spandsp/t30_api.h b/libs/spandsp/src/spandsp/t30_api.h index 137e871803..f4f8040beb 100644 --- a/libs/spandsp/src/spandsp/t30_api.h +++ b/libs/spandsp/src/spandsp/t30_api.h @@ -467,12 +467,19 @@ SPAN_DECLARE(int) t30_set_supported_modems(t30_state_t *s, int supported_modems) \return 0 if OK, else -1. */ SPAN_DECLARE(int) t30_set_supported_compressions(t30_state_t *s, int supported_compressions); -/*! Specify which resolutions are supported by a T.30 context. - \brief Specify supported resolutions. +/*! Specify which bi-level resolutions are supported by a T.30 context. + \brief Specify supported bi-level resolutions. \param s The T.30 context. \param supported_resolutions Bit field list of the supported resolutions. \return 0 if OK, else -1. */ -SPAN_DECLARE(int) t30_set_supported_resolutions(t30_state_t *s, int supported_resolutions); +SPAN_DECLARE(int) t30_set_supported_bilevel_resolutions(t30_state_t *s, int supported_resolutions); + +/*! Specify which colour resolutions are supported by a T.30 context. + \brief Specify supported colour resolutions. + \param s The T.30 context. + \param supported_resolutions Bit field list of the supported resolutions. + \return 0 if OK, else -1. */ +SPAN_DECLARE(int) t30_set_supported_colour_resolutions(t30_state_t *s, int supported_resolutions); /*! Specify which images sizes are supported by a T.30 context. \brief Specify supported image sizes. diff --git a/libs/spandsp/src/t30_api.c b/libs/spandsp/src/t30_api.c index cc55efea49..e5326d926e 100644 --- a/libs/spandsp/src/t30_api.c +++ b/libs/spandsp/src/t30_api.c @@ -710,7 +710,7 @@ SPAN_DECLARE(int) t30_set_supported_compressions(t30_state_t *s, int supported_c } /*- End of function --------------------------------------------------------*/ -SPAN_DECLARE(int) t30_set_supported_resolutions(t30_state_t *s, int supported_resolutions) +SPAN_DECLARE(int) t30_set_supported_bilevel_resolutions(t30_state_t *s, int supported_resolutions) { s->supported_bilevel_resolutions = supported_resolutions; t30_build_dis_or_dtc(s); @@ -718,6 +718,14 @@ SPAN_DECLARE(int) t30_set_supported_resolutions(t30_state_t *s, int supported_re } /*- End of function --------------------------------------------------------*/ +SPAN_DECLARE(int) t30_set_supported_colour_resolutions(t30_state_t *s, int supported_resolutions) +{ + s->supported_colour_resolutions = supported_resolutions; + t30_build_dis_or_dtc(s); + return 0; +} +/*- End of function --------------------------------------------------------*/ + SPAN_DECLARE(int) t30_set_supported_image_sizes(t30_state_t *s, int supported_image_sizes) { s->supported_image_sizes = supported_image_sizes; diff --git a/libs/spandsp/tests/fax_tests.c b/libs/spandsp/tests/fax_tests.c index 622d2fb4de..adbe41a847 100644 --- a/libs/spandsp/tests/fax_tests.c +++ b/libs/spandsp/tests/fax_tests.c @@ -845,21 +845,22 @@ int main(int argc, char *argv[]) | T30_SUPPORT_215MM_WIDTH | T30_SUPPORT_255MM_WIDTH | T30_SUPPORT_303MM_WIDTH); - t30_set_supported_resolutions(t30_state[i], - T30_SUPPORT_RESOLUTION_R8_STANDARD - | T30_SUPPORT_RESOLUTION_R8_FINE - | T30_SUPPORT_RESOLUTION_R8_SUPERFINE - | T30_SUPPORT_RESOLUTION_R16_SUPERFINE - | T30_SUPPORT_RESOLUTION_200_100 - | T30_SUPPORT_RESOLUTION_200_200 - | T30_SUPPORT_RESOLUTION_200_400 - | T30_SUPPORT_RESOLUTION_300_300 - | T30_SUPPORT_RESOLUTION_300_600 - | T30_SUPPORT_RESOLUTION_400_400 - | T30_SUPPORT_RESOLUTION_400_800 - | T30_SUPPORT_RESOLUTION_600_600 - | T30_SUPPORT_RESOLUTION_600_1200 - | T30_SUPPORT_RESOLUTION_1200_1200); + t30_set_supported_bilevel_resolutions(t30_state[i], + T30_SUPPORT_RESOLUTION_R8_STANDARD + | T30_SUPPORT_RESOLUTION_R8_FINE + | T30_SUPPORT_RESOLUTION_R8_SUPERFINE + | T30_SUPPORT_RESOLUTION_R16_SUPERFINE + | T30_SUPPORT_RESOLUTION_200_100 + | T30_SUPPORT_RESOLUTION_200_200 + | T30_SUPPORT_RESOLUTION_200_400 + | T30_SUPPORT_RESOLUTION_300_300 + | T30_SUPPORT_RESOLUTION_300_600 + | T30_SUPPORT_RESOLUTION_400_400 + | T30_SUPPORT_RESOLUTION_400_800 + | T30_SUPPORT_RESOLUTION_600_600 + | T30_SUPPORT_RESOLUTION_600_1200 + | T30_SUPPORT_RESOLUTION_1200_1200); + t30_set_supported_colour_resolutions(t30_state[i], 0); //t30_set_rx_encoding(t30_state[i], T4_COMPRESSION_T85); t30_set_ecm_capability(t30_state[i], use_ecm); if (use_ecm) diff --git a/libs/spandsp/tests/tsb85_tests.c b/libs/spandsp/tests/tsb85_tests.c index 14d37f4604..28c3734fc5 100644 --- a/libs/spandsp/tests/tsb85_tests.c +++ b/libs/spandsp/tests/tsb85_tests.c @@ -392,21 +392,22 @@ static void fax_prepare(void) | T30_SUPPORT_215MM_WIDTH | T30_SUPPORT_255MM_WIDTH | T30_SUPPORT_303MM_WIDTH); - t30_set_supported_resolutions(t30, - T30_SUPPORT_RESOLUTION_R8_STANDARD - | T30_SUPPORT_RESOLUTION_R8_FINE - | T30_SUPPORT_RESOLUTION_R8_SUPERFINE - | T30_SUPPORT_RESOLUTION_R16_SUPERFINE - | T30_SUPPORT_RESOLUTION_200_100 - | T30_SUPPORT_RESOLUTION_200_200 - | T30_SUPPORT_RESOLUTION_200_400 - | T30_SUPPORT_RESOLUTION_300_300 - | T30_SUPPORT_RESOLUTION_300_600 - | T30_SUPPORT_RESOLUTION_400_400 - | T30_SUPPORT_RESOLUTION_400_800 - | T30_SUPPORT_RESOLUTION_600_600 - | T30_SUPPORT_RESOLUTION_600_1200 - | T30_SUPPORT_RESOLUTION_1200_1200); + t30_set_supported_bilevel_resolutions(t30, + T30_SUPPORT_RESOLUTION_R8_STANDARD + | T30_SUPPORT_RESOLUTION_R8_FINE + | T30_SUPPORT_RESOLUTION_R8_SUPERFINE + | T30_SUPPORT_RESOLUTION_R16_SUPERFINE + | T30_SUPPORT_RESOLUTION_200_100 + | T30_SUPPORT_RESOLUTION_200_200 + | T30_SUPPORT_RESOLUTION_200_400 + | T30_SUPPORT_RESOLUTION_300_300 + | T30_SUPPORT_RESOLUTION_300_600 + | T30_SUPPORT_RESOLUTION_400_400 + | T30_SUPPORT_RESOLUTION_400_800 + | T30_SUPPORT_RESOLUTION_600_600 + | T30_SUPPORT_RESOLUTION_600_1200 + | T30_SUPPORT_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, T30_SUPPORT_COMPRESSION_T4_1D | T30_SUPPORT_COMPRESSION_T4_2D | T30_SUPPORT_COMPRESSION_T6); t30_set_phase_b_handler(t30, phase_b_handler, (void *) (intptr_t) 'A'); diff --git a/src/mod/applications/mod_spandsp/mod_spandsp_fax.c b/src/mod/applications/mod_spandsp/mod_spandsp_fax.c index a5766021c5..af932da2cd 100644 --- a/src/mod/applications/mod_spandsp/mod_spandsp_fax.c +++ b/src/mod/applications/mod_spandsp/mod_spandsp_fax.c @@ -875,9 +875,12 @@ static switch_status_t spanfax_init(pvt_t *pvt, transport_mode_t trans_mode) t30_set_supported_image_sizes(t30, T30_SUPPORT_US_LETTER_LENGTH | T30_SUPPORT_US_LEGAL_LENGTH | T30_SUPPORT_UNLIMITED_LENGTH | T30_SUPPORT_215MM_WIDTH | T30_SUPPORT_255MM_WIDTH | T30_SUPPORT_303MM_WIDTH); - t30_set_supported_resolutions(t30, - T30_SUPPORT_RESOLUTION_R8_STANDARD | T30_SUPPORT_RESOLUTION_R8_FINE | T30_SUPPORT_RESOLUTION_R8_SUPERFINE - | T30_SUPPORT_RESOLUTION_R16_SUPERFINE); + t30_set_supported_bilevel_resolutions(t30, + T30_SUPPORT_RESOLUTION_R8_STANDARD + | T30_SUPPORT_RESOLUTION_R8_FINE + | T30_SUPPORT_RESOLUTION_R8_SUPERFINE + | T30_SUPPORT_RESOLUTION_R16_SUPERFINE); + t30_set_supported_colour_resolutions(t30, 0); if (pvt->disable_v17) { t30_set_supported_modems(t30, T30_SUPPORT_V29 | T30_SUPPORT_V27TER);