genesys: Return errors as exceptions from *save_power()

merge-requests/104/head
Povilas Kanapickas 2019-07-20 11:02:02 +03:00
rodzic d75aa89c9f
commit fd12b4052f
9 zmienionych plików z 32 dodań i 78 usunięć

Wyświetl plik

@ -3651,14 +3651,8 @@ genesys_start_scan (Genesys_Device * dev, SANE_Bool lamp_off)
sanei_genesys_wait_for_home(dev);
}
/* disable power saving*/
status = dev->model->cmd_set->save_power (dev, SANE_FALSE);
if (status != SANE_STATUS_GOOD)
{
DBG(DBG_error, "%s: failed to disable power saving mode: %s\n", __func__,
sane_strstatus(status));
return status;
}
// disable power saving
dev->model->cmd_set->save_power(dev, SANE_FALSE);
/* wait for lamp warmup : until a warmup for TRANSPARENCY is designed, skip
* it when scanning from XPA. */
@ -6217,7 +6211,6 @@ void
sane_close_impl(SANE_Handle handle)
{
DBG_HELPER(dbg);
SANE_Status status = SANE_STATUS_GOOD;
/* remove handle from list of open handles: */
auto it = s_scanners->end();
@ -6251,13 +6244,8 @@ sane_close_impl(SANE_Handle handle)
}
}
/* enable power saving before leaving */
status = s->dev->model->cmd_set->save_power (s->dev, SANE_TRUE);
if (status != SANE_STATUS_GOOD)
{
DBG(DBG_error, "%s: failed to enable power saving mode: %s\n", __func__,
sane_strstatus(status));
}
// enable power saving before leaving
s->dev->model->cmd_set->save_power(s->dev, SANE_TRUE);
// here is the place to store calibration cache
if (s->dev->force_calibration == 0) {
@ -6864,20 +6852,19 @@ set_option_value (Genesys_Scanner * s, int option, void *val,
s->dev->gamma_override_tables[GENESYS_BLUE][i] = table[i];
}
break;
case OPT_CALIBRATE:
status = s->dev->model->cmd_set->save_power (s->dev, SANE_FALSE);
if (status != SANE_STATUS_GOOD)
{
DBG(DBG_error, "%s: failed to disable power saving mode: %s\n", __func__,
sane_strstatus(status));
}
else
status = genesys_scanner_calibration(s->dev, sensor);
/* not critical if this fails*/
s->dev->model->cmd_set->save_power (s->dev, SANE_TRUE);
/* signals that sensors will have to be read again */
*myinfo |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
break;
case OPT_CALIBRATE: {
catch_all_exceptions(__func__, [&]()
{
s->dev->model->cmd_set->save_power(s->dev, SANE_FALSE);
TIE(genesys_scanner_calibration(s->dev, sensor));
});
catch_all_exceptions(__func__, [&]()
{
s->dev->model->cmd_set->save_power(s->dev, SANE_TRUE);
});
*myinfo |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
break;
}
case OPT_CLEAR_CALIBRATION:
s->dev->calibration_cache.clear();
@ -7321,13 +7308,7 @@ void sane_cancel_impl(SANE_Handle handle)
/* enable power saving mode unless we are parking .... */
if(s->dev->parking==SANE_FALSE)
{
status = s->dev->model->cmd_set->save_power (s->dev, SANE_TRUE);
if (status != SANE_STATUS_GOOD)
{
DBG(DBG_error, "%s: failed to enable power saving mode: %s\n", __func__,
sane_strstatus(status));
return;
}
s->dev->model->cmd_set->save_power(s->dev, SANE_TRUE);
}
return;

Wyświetl plik

@ -1487,14 +1487,10 @@ gl124_calculate_current_setup (Genesys_Device * dev, const Genesys_Sensor& senso
* @param dev device to use
* @param enable true to set inot powersaving
* */
static SANE_Status
gl124_save_power (Genesys_Device * dev, SANE_Bool enable)
static void gl124_save_power(Genesys_Device* dev, SANE_Bool enable)
{
(void) dev;
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
if (dev == NULL)
return SANE_STATUS_INVAL;
return SANE_STATUS_GOOD;
}
static SANE_Status

Wyświetl plik

@ -1519,9 +1519,7 @@ static void gl646_public_set_fe(Genesys_Device* dev, const Genesys_Sensor& senso
* @param enable SANE_TRUE to enable power saving, SANE_FALSE to leave it
* @return allways SANE_STATUS_GOOD
*/
static
SANE_Status
gl646_save_power (Genesys_Device * dev, SANE_Bool enable)
static void gl646_save_power(Genesys_Device* dev, SANE_Bool enable)
{
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
@ -1535,8 +1533,6 @@ gl646_save_power (Genesys_Device * dev, SANE_Bool enable)
{
gl646_set_fe(dev, sensor, AFE_INIT, 0);
}
return SANE_STATUS_GOOD;
}
static SANE_Status

Wyświetl plik

@ -169,9 +169,7 @@ static void gl646_set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint
static void gl646_public_set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set);
static
SANE_Status
gl646_save_power (Genesys_Device * dev, SANE_Bool enable);
static void gl646_save_power(Genesys_Device* dev, SANE_Bool enable);
static void gl646_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home);

Wyświetl plik

@ -2305,8 +2305,8 @@ dummy \ scanned lines
dev->current_setup.max_shift = max_shift + stagger;
}
/*for fast power saving methods only, like disabling certain amplifiers*/
static SANE_Status gl841_save_power(Genesys_Device * dev, SANE_Bool enable)
// for fast power saving methods only, like disabling certain amplifiers
static void gl841_save_power(Genesys_Device* dev, SANE_Bool enable)
{
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
uint8_t val;
@ -2401,8 +2401,6 @@ static SANE_Status gl841_save_power(Genesys_Device * dev, SANE_Bool enable)
}
}
return SANE_STATUS_GOOD;
}
static SANE_Status

Wyświetl plik

@ -1671,16 +1671,11 @@ gl843_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
* @param dev device to use
* @param enable true to set inot powersaving
* */
static SANE_Status
gl843_save_power (Genesys_Device * dev, SANE_Bool enable)
static void gl843_save_power(Genesys_Device* dev, SANE_Bool enable)
{
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
uint8_t val;
if (dev == NULL) {
return SANE_STATUS_INVAL;
}
// switch KV-SS080 lamp off
if (dev->model->gpo_type == GPO_KVSS080) {
sanei_genesys_read_register(dev, REG6C, &val);
@ -1691,8 +1686,6 @@ gl843_save_power (Genesys_Device * dev, SANE_Bool enable)
}
sanei_genesys_write_register(dev,REG6C,val);
}
return SANE_STATUS_GOOD;
}
static SANE_Status

Wyświetl plik

@ -1339,15 +1339,11 @@ gl846_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
dev->current_setup.max_shift = max_shift + stagger;
}
/*for fast power saving methods only, like disabling certain amplifiers*/
static SANE_Status
gl846_save_power (Genesys_Device * dev, SANE_Bool enable)
// for fast power saving methods only, like disabling certain amplifiers
static void gl846_save_power(Genesys_Device* dev, SANE_Bool enable)
{
(void) dev;
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
if (dev == NULL)
return SANE_STATUS_INVAL;
return SANE_STATUS_GOOD;
}
static SANE_Status

Wyświetl plik

@ -1355,15 +1355,11 @@ gl847_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
dev->current_setup.max_shift = max_shift + stagger;
}
/*for fast power saving methods only, like disabling certain amplifiers*/
static SANE_Status
gl847_save_power (Genesys_Device * dev, SANE_Bool enable)
// for fast power saving methods only, like disabling certain amplifiers
static void gl847_save_power(Genesys_Device* dev, SANE_Bool enable)
{
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
if (dev == NULL)
return SANE_STATUS_INVAL;
return SANE_STATUS_GOOD;
(void) dev;
}
static SANE_Status

Wyświetl plik

@ -1067,7 +1067,7 @@ struct Genesys_Command_Set
void (*set_fe) (Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set);
SANE_Status (*set_powersaving) (Genesys_Device * dev, int delay);
SANE_Status (*save_power) (Genesys_Device * dev, SANE_Bool enable);
void (*save_power) (Genesys_Device* dev, SANE_Bool enable);
void (*begin_scan) (Genesys_Device* dev, const Genesys_Sensor& sensor,
Genesys_Register_Set* regs, SANE_Bool start_motor);