修复深色样张协议映射问题

This commit is contained in:
gb 2024-01-26 11:18:13 +08:00
parent 5531efa1c1
commit f4ac35d396
1 changed files with 23 additions and 20 deletions

View File

@ -2957,6 +2957,8 @@ void huagao_ds::init_support_caps(void)
log_attr_access((int)CapType::DoubleFeedDetection, (int)msg);
if (Msg::Set == msg) {
auto val = data.currentItem<CapType::DoubleFeedDetection>();
auto type = data.itemType();
load_sane_util::to_log(1, L"DoubleFeedDetection parameter is %d\r\n", (int)type);
int ret = SCANNER_ERR_OK;
bool enable = val == DoubleFeedDetection::Ultrasonic;
if (double_check_mode_ == DOUBLE_CHECK_ULTRASONIC)
@ -3053,26 +3055,26 @@ void huagao_ds::init_support_caps(void)
};
}
if (SANE_ID(ex_is_paper_auto_crop) > 0)
{
m_query[(CapType)(CapTypeEx::CAP_TYPE_EX_CROP_MODEL)] = msgSupportGetAllSetReset;
m_caps[(CapType)(CapTypeEx::CAP_TYPE_EX_CROP_MODEL)] = [this](Msg msg, Capability& data)->Result {
log_attr_access((int)CapTypeEx::CAP_TYPE_EX_CROP_MODEL, (int)msg);
std::vector<bool> all;
GET_SANE_OPT_EX(bool, scanner_, ex_is_paper_auto_crop, NULL, &all);
if (Msg::Set == msg || Msg::Reset == msg)
{
bool def = all[sane_opts::RANGE_POS_DEFAULT];
if (Msg::Set == msg)
def = data.currentItem<BYTE>() == 1;
int ret = SCANNER_ERR_OK;
SET_SANE_OPT_EX(ret, scanner_, ex_is_paper_auto_crop, &def);
return ret == SCANNER_ERR_OK ? success() : badValue();
}
BYTE crop = all[sane_opts::RANGE_POS_CURRENT];
return CapSupGetAll<BYTE, bool, CapType::IAutomaticCropUsesFrame>(msg, data, crop, all[sane_opts::RANGE_POS_DEFAULT]);
};
}
//if (SANE_ID(ex_is_paper_auto_crop) > 0)
//{
// m_query[(CapType)(CapTypeEx::CAP_TYPE_EX_CROP_MODEL)] = msgSupportGetAllSetReset;
// m_caps[(CapType)(CapTypeEx::CAP_TYPE_EX_CROP_MODEL)] = [this](Msg msg, Capability& data)->Result {
// log_attr_access((int)CapTypeEx::CAP_TYPE_EX_CROP_MODEL, (int)msg);
// std::vector<bool> all;
// GET_SANE_OPT_EX(bool, scanner_, ex_is_paper_auto_crop, NULL, &all);
// if (Msg::Set == msg || Msg::Reset == msg)
// {
// bool def = all[sane_opts::RANGE_POS_DEFAULT];
// if (Msg::Set == msg)
// def = data.currentItem<BYTE>() == 1;
// int ret = SCANNER_ERR_OK;
// SET_SANE_OPT_EX(ret, scanner_, ex_is_paper_auto_crop, &def);
// return ret == SCANNER_ERR_OK ? success() : badValue();
// }
// BYTE crop = all[sane_opts::RANGE_POS_CURRENT];
// return CapSupGetAll<BYTE, bool, CapType::IAutomaticCropUsesFrame>(msg, data, crop, all[sane_opts::RANGE_POS_DEFAULT]);
// };
//}
if (SANE_ID(ex_multiout_type) > 0)
{
@ -3303,6 +3305,7 @@ void huagao_ds::init_support_caps(void)
SET_EXISTING_EXTENSION(ANTI_NOISE_LEVEL, CapTypeEx::CAP_TYPE_EX_ANTI_NOISE);
SET_EXISTING_EXTENSION(THRESHOLD, CapTypeEx::CAP_TYPE_EX_THRESHOLD);
//SET_EXISTING_EXTENSION(RID_HOLE, CapTypeEx::CAP_TYPE_EX_FILL_HOLE);
SET_EXISTING_EXTENSION(DARK_SAMPLE, CapTypeEx::CAP_TYPE_EX_CROP_MODEL);
SET_EXISTING_EXTENSION(NOISE_OPTIMIZE, CapTypeEx::CAP_TYPE_EX_DETACH_NOISE);
SET_EXISTING_EXTENSION(NOISE_SIZE, CapTypeEx::CAP_TYPE_EX_DETACH_NOISE_THRESHOLD);
SET_EXISTING_EXTENSION(RID_MULTIOUT_RED, CapTypeEx::CAP_TYPE_EX_RID_RED);