kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Return errors as exceptions from *save_power()
rodzic
d75aa89c9f
commit
fd12b4052f
|
@ -3651,14 +3651,8 @@ genesys_start_scan (Genesys_Device * dev, SANE_Bool lamp_off)
|
||||||
sanei_genesys_wait_for_home(dev);
|
sanei_genesys_wait_for_home(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* disable power saving*/
|
// disable power saving
|
||||||
status = dev->model->cmd_set->save_power (dev, SANE_FALSE);
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* wait for lamp warmup : until a warmup for TRANSPARENCY is designed, skip
|
/* wait for lamp warmup : until a warmup for TRANSPARENCY is designed, skip
|
||||||
* it when scanning from XPA. */
|
* it when scanning from XPA. */
|
||||||
|
@ -6217,7 +6211,6 @@ void
|
||||||
sane_close_impl(SANE_Handle handle)
|
sane_close_impl(SANE_Handle handle)
|
||||||
{
|
{
|
||||||
DBG_HELPER(dbg);
|
DBG_HELPER(dbg);
|
||||||
SANE_Status status = SANE_STATUS_GOOD;
|
|
||||||
|
|
||||||
/* remove handle from list of open handles: */
|
/* remove handle from list of open handles: */
|
||||||
auto it = s_scanners->end();
|
auto it = s_scanners->end();
|
||||||
|
@ -6251,13 +6244,8 @@ sane_close_impl(SANE_Handle handle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* enable power saving before leaving */
|
// enable power saving before leaving
|
||||||
status = s->dev->model->cmd_set->save_power (s->dev, SANE_TRUE);
|
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
// here is the place to store calibration cache
|
// here is the place to store calibration cache
|
||||||
if (s->dev->force_calibration == 0) {
|
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];
|
s->dev->gamma_override_tables[GENESYS_BLUE][i] = table[i];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OPT_CALIBRATE:
|
case OPT_CALIBRATE: {
|
||||||
status = s->dev->model->cmd_set->save_power (s->dev, SANE_FALSE);
|
catch_all_exceptions(__func__, [&]()
|
||||||
if (status != SANE_STATUS_GOOD)
|
{
|
||||||
{
|
s->dev->model->cmd_set->save_power(s->dev, SANE_FALSE);
|
||||||
DBG(DBG_error, "%s: failed to disable power saving mode: %s\n", __func__,
|
TIE(genesys_scanner_calibration(s->dev, sensor));
|
||||||
sane_strstatus(status));
|
});
|
||||||
}
|
catch_all_exceptions(__func__, [&]()
|
||||||
else
|
{
|
||||||
status = genesys_scanner_calibration(s->dev, sensor);
|
s->dev->model->cmd_set->save_power(s->dev, SANE_TRUE);
|
||||||
/* not critical if this fails*/
|
});
|
||||||
s->dev->model->cmd_set->save_power (s->dev, SANE_TRUE);
|
*myinfo |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
||||||
/* signals that sensors will have to be read again */
|
break;
|
||||||
*myinfo |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
}
|
||||||
break;
|
|
||||||
case OPT_CLEAR_CALIBRATION:
|
case OPT_CLEAR_CALIBRATION:
|
||||||
s->dev->calibration_cache.clear();
|
s->dev->calibration_cache.clear();
|
||||||
|
|
||||||
|
@ -7321,13 +7308,7 @@ void sane_cancel_impl(SANE_Handle handle)
|
||||||
/* enable power saving mode unless we are parking .... */
|
/* enable power saving mode unless we are parking .... */
|
||||||
if(s->dev->parking==SANE_FALSE)
|
if(s->dev->parking==SANE_FALSE)
|
||||||
{
|
{
|
||||||
status = s->dev->model->cmd_set->save_power (s->dev, SANE_TRUE);
|
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1487,14 +1487,10 @@ gl124_calculate_current_setup (Genesys_Device * dev, const Genesys_Sensor& senso
|
||||||
* @param dev device to use
|
* @param dev device to use
|
||||||
* @param enable true to set inot powersaving
|
* @param enable true to set inot powersaving
|
||||||
* */
|
* */
|
||||||
static SANE_Status
|
static void gl124_save_power(Genesys_Device* dev, SANE_Bool enable)
|
||||||
gl124_save_power (Genesys_Device * dev, SANE_Bool enable)
|
|
||||||
{
|
{
|
||||||
|
(void) dev;
|
||||||
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
||||||
if (dev == NULL)
|
|
||||||
return SANE_STATUS_INVAL;
|
|
||||||
|
|
||||||
return SANE_STATUS_GOOD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
|
|
|
@ -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
|
* @param enable SANE_TRUE to enable power saving, SANE_FALSE to leave it
|
||||||
* @return allways SANE_STATUS_GOOD
|
* @return allways SANE_STATUS_GOOD
|
||||||
*/
|
*/
|
||||||
static
|
static void gl646_save_power(Genesys_Device* dev, SANE_Bool enable)
|
||||||
SANE_Status
|
|
||||||
gl646_save_power (Genesys_Device * dev, SANE_Bool enable)
|
|
||||||
{
|
{
|
||||||
DBG_HELPER_ARGS(dbg, "enable = %d", 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);
|
gl646_set_fe(dev, sensor, AFE_INIT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SANE_STATUS_GOOD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
|
|
|
@ -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 void gl646_public_set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set);
|
||||||
|
|
||||||
static
|
static void gl646_save_power(Genesys_Device* dev, SANE_Bool enable);
|
||||||
SANE_Status
|
|
||||||
gl646_save_power (Genesys_Device * dev, SANE_Bool enable);
|
|
||||||
|
|
||||||
static void gl646_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home);
|
static void gl646_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home);
|
||||||
|
|
||||||
|
|
|
@ -2305,8 +2305,8 @@ dummy \ scanned lines
|
||||||
dev->current_setup.max_shift = max_shift + stagger;
|
dev->current_setup.max_shift = max_shift + stagger;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*for fast power saving methods only, like disabling certain amplifiers*/
|
// for fast power saving methods only, like disabling certain amplifiers
|
||||||
static SANE_Status gl841_save_power(Genesys_Device * dev, SANE_Bool enable)
|
static void gl841_save_power(Genesys_Device* dev, SANE_Bool enable)
|
||||||
{
|
{
|
||||||
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
||||||
uint8_t val;
|
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
|
static SANE_Status
|
||||||
|
|
|
@ -1671,16 +1671,11 @@ gl843_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
|
||||||
* @param dev device to use
|
* @param dev device to use
|
||||||
* @param enable true to set inot powersaving
|
* @param enable true to set inot powersaving
|
||||||
* */
|
* */
|
||||||
static SANE_Status
|
static void gl843_save_power(Genesys_Device* dev, SANE_Bool enable)
|
||||||
gl843_save_power (Genesys_Device * dev, SANE_Bool enable)
|
|
||||||
{
|
{
|
||||||
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
||||||
uint8_t val;
|
uint8_t val;
|
||||||
|
|
||||||
if (dev == NULL) {
|
|
||||||
return SANE_STATUS_INVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// switch KV-SS080 lamp off
|
// switch KV-SS080 lamp off
|
||||||
if (dev->model->gpo_type == GPO_KVSS080) {
|
if (dev->model->gpo_type == GPO_KVSS080) {
|
||||||
sanei_genesys_read_register(dev, REG6C, &val);
|
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);
|
sanei_genesys_write_register(dev,REG6C,val);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SANE_STATUS_GOOD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
|
|
|
@ -1339,15 +1339,11 @@ gl846_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
|
||||||
dev->current_setup.max_shift = max_shift + stagger;
|
dev->current_setup.max_shift = max_shift + stagger;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*for fast power saving methods only, like disabling certain amplifiers*/
|
// for fast power saving methods only, like disabling certain amplifiers
|
||||||
static SANE_Status
|
static void gl846_save_power(Genesys_Device* dev, SANE_Bool enable)
|
||||||
gl846_save_power (Genesys_Device * dev, SANE_Bool enable)
|
|
||||||
{
|
{
|
||||||
|
(void) dev;
|
||||||
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
||||||
if (dev == NULL)
|
|
||||||
return SANE_STATUS_INVAL;
|
|
||||||
|
|
||||||
return SANE_STATUS_GOOD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
|
|
|
@ -1355,15 +1355,11 @@ gl847_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
|
||||||
dev->current_setup.max_shift = max_shift + stagger;
|
dev->current_setup.max_shift = max_shift + stagger;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*for fast power saving methods only, like disabling certain amplifiers*/
|
// for fast power saving methods only, like disabling certain amplifiers
|
||||||
static SANE_Status
|
static void gl847_save_power(Genesys_Device* dev, SANE_Bool enable)
|
||||||
gl847_save_power (Genesys_Device * dev, SANE_Bool enable)
|
|
||||||
{
|
{
|
||||||
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
DBG_HELPER_ARGS(dbg, "enable = %d", enable);
|
||||||
if (dev == NULL)
|
(void) dev;
|
||||||
return SANE_STATUS_INVAL;
|
|
||||||
|
|
||||||
return SANE_STATUS_GOOD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
|
|
|
@ -1067,7 +1067,7 @@ struct Genesys_Command_Set
|
||||||
|
|
||||||
void (*set_fe) (Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t 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 (*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,
|
void (*begin_scan) (Genesys_Device* dev, const Genesys_Sensor& sensor,
|
||||||
Genesys_Register_Set* regs, SANE_Bool start_motor);
|
Genesys_Register_Set* regs, SANE_Bool start_motor);
|
||||||
|
|
Ładowanie…
Reference in New Issue