mirror of http://192.168.1.51:8099/lmh188/twain3.0
parent
784d9abd0f
commit
f9b494c5b6
|
@ -124,7 +124,7 @@ static constexpr const Identity srcIdent(
|
||||||
// lets just simulate uniform resolution for both axes
|
// lets just simulate uniform resolution for both axes
|
||||||
static constexpr UInt32 RESOLUTIONX = 85;
|
static constexpr UInt32 RESOLUTIONX = 85;
|
||||||
|
|
||||||
static std::unique_ptr<CWinApp> application(new CWinApp());
|
//static std::unique_ptr<CWinApp> application(new CWinApp());
|
||||||
|
|
||||||
static list<float> resList = { 100.0,150.0,200.0,240.0,300.0 };
|
static list<float> resList = { 100.0,150.0,200.0,240.0,300.0 };
|
||||||
|
|
||||||
|
@ -408,15 +408,7 @@ Result HuagaoDs::eventProcess(const Identity&, Event& event) {
|
||||||
|
|
||||||
return { ReturnCode::NotDsEvent, ConditionCode::Success };
|
return { ReturnCode::NotDsEvent, ConditionCode::Success };
|
||||||
}
|
}
|
||||||
//Result HuagaoDs::customDataSet(const Twpp::Identity& origin, Twpp::CustomData& data)
|
|
||||||
//{
|
|
||||||
// return Result();
|
|
||||||
//}
|
|
||||||
//Twpp::Result HuagaoDs::deviceEventGet(const Twpp::Identity & origin, Twpp::DeviceEvent & data)
|
|
||||||
//{
|
|
||||||
// data = DeviceEvent::simple(DeviceEvent::Type::PaperJam, Str255("HuaGo G200 Twain Device Error"));
|
|
||||||
// return success();
|
|
||||||
//}
|
|
||||||
//add------------------设置jpg图像dpi---------------------------
|
//add------------------设置jpg图像dpi---------------------------
|
||||||
void HuagaoDs::SetResoluton(const char* path, int resolution)
|
void HuagaoDs::SetResoluton(const char* path, int resolution)
|
||||||
{
|
{
|
||||||
|
@ -453,7 +445,6 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
bmInfo.biBitCount = m_scanparam->pixtype == 2 ? 24 : (m_scanparam->pixtype == 1 ? 8 : 0);
|
bmInfo.biBitCount = m_scanparam->pixtype == 2 ? 24 : (m_scanparam->pixtype == 1 ? 8 : 0);
|
||||||
m_iBitdepth = m_scanparam->pixtype == 2 ? 24 : (m_scanparam->pixtype == 1 ? 8 : 0);
|
m_iBitdepth = m_scanparam->pixtype == 2 ? 24 : (m_scanparam->pixtype == 1 ? 8 : 0);
|
||||||
scanner->open(0x064B, 0x7823);
|
scanner->open(0x064B, 0x7823);
|
||||||
//scanner->open(0x3072, 0x0100);
|
|
||||||
|
|
||||||
if (!scanner->IsConnected()) {
|
if (!scanner->IsConnected()) {
|
||||||
ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), CString("201"), NULL, SW_HIDE);
|
ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), CString("201"), NULL, SW_HIDE);
|
||||||
|
@ -505,15 +496,14 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
if (item > 65535 || item < -1) {
|
if (item > 65535 || item < -1) {
|
||||||
return badValue();
|
return badValue();
|
||||||
}
|
}
|
||||||
m_capXferCount = item;
|
m_scanparam->scannum = item;
|
||||||
m_scanparam->scannum = m_capXferCount;
|
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
auto ret = oneValGetSet<Int16>(msg, data, m_capXferCount, -1);
|
Int16 tmp_count = m_scanparam->scannum;
|
||||||
if (Twpp::success(ret) && m_capXferCount == 0) {
|
auto ret = oneValGetSet<Int16>(msg, data, tmp_count, -1);
|
||||||
m_capXferCount = -1;
|
if (!Twpp::success(ret) && m_scanparam->scannum == 0) {
|
||||||
m_scanparam->scannum = m_capXferCount;
|
m_scanparam->scannum = -1;
|
||||||
return { ReturnCode::CheckStatus, ConditionCode::BadValue };
|
return { ReturnCode::CheckStatus, ConditionCode::BadValue };
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -595,10 +585,10 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
m_caps[CapType::IPlanarChunky] = std::bind(enmGetSetConst<PlanarChunky>, _1, _2, PlanarChunky::Chunky);
|
m_caps[CapType::IPlanarChunky] = std::bind(enmGetSetConst<PlanarChunky>, _1, _2, PlanarChunky::Chunky);
|
||||||
|
|
||||||
m_query[CapType::IPhysicalWidth] = msgSupportGetAll;
|
m_query[CapType::IPhysicalWidth] = msgSupportGetAll;
|
||||||
m_caps[CapType::IPhysicalWidth] = std::bind(oneValGet<Fix32>, _1, _2, Fix32(static_cast<float>(header()->biWidth) / RESOLUTIONX));
|
m_caps[CapType::IPhysicalWidth] = std::bind(oneValGet<Fix32>, _1, _2, Fix32(static_cast<float>(header()->biWidth) / m_scanparam->resolution_dst));
|
||||||
|
|
||||||
m_query[CapType::IPhysicalHeight] = msgSupportGetAll;
|
m_query[CapType::IPhysicalHeight] = msgSupportGetAll;
|
||||||
m_caps[CapType::IPhysicalHeight] = std::bind(oneValGet<Fix32>, _1, _2, Fix32(static_cast<float>(header()->biHeight) / RESOLUTIONX));
|
m_caps[CapType::IPhysicalHeight] = std::bind(oneValGet<Fix32>, _1, _2, Fix32(static_cast<float>(header()->biHeight) / m_scanparam->resolution_dst));
|
||||||
|
|
||||||
m_query[CapType::IPixelFlavor] = msgSupportGetAllSetReset;
|
m_query[CapType::IPixelFlavor] = msgSupportGetAllSetReset;
|
||||||
m_caps[CapType::IPixelFlavor] = std::bind(enmGetSetConst<PixelFlavor>, _1, _2, PixelFlavor::Chocolate);
|
m_caps[CapType::IPixelFlavor] = std::bind(enmGetSetConst<PixelFlavor>, _1, _2, PixelFlavor::Chocolate);
|
||||||
|
@ -999,6 +989,7 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
m_caps[CapType::DuplexEnabled] = [this](Msg msg, Capability& data) -> Result {
|
m_caps[CapType::DuplexEnabled] = [this](Msg msg, Capability& data) -> Result {
|
||||||
switch (msg) {
|
switch (msg) {
|
||||||
case Msg::Get:
|
case Msg::Get:
|
||||||
|
//MessageBox(NULL, m_scanparam->is_duplex?TEXT("Get duplex"): TEXT("Get not duplex"), TEXT("aa"), MB_OK);
|
||||||
data = Capability::createEnumeration<CapType::DuplexEnabled>(
|
data = Capability::createEnumeration<CapType::DuplexEnabled>(
|
||||||
{ Bool(), Bool(true) }, Bool(m_scanparam->is_duplex));
|
{ Bool(), Bool(true) }, Bool(m_scanparam->is_duplex));
|
||||||
return success();
|
return success();
|
||||||
|
@ -1015,6 +1006,7 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
case Msg::Set: {
|
case Msg::Set: {
|
||||||
auto mech = data.currentItem<CapType::DuplexEnabled>();
|
auto mech = data.currentItem<CapType::DuplexEnabled>();
|
||||||
m_scanparam->is_duplex = mech;
|
m_scanparam->is_duplex = mech;
|
||||||
|
m_scanparam->is_autodiscradblank_normal = m_scanparam->is_autodiscradblank_vince = m_scanparam->en_fold = 0;
|
||||||
if (!mech)
|
if (!mech)
|
||||||
m_scanparam->is_backrotate180 = 0;//单面背面旋转180°不可用
|
m_scanparam->is_backrotate180 = 0;//单面背面旋转180°不可用
|
||||||
return success();
|
return success();
|
||||||
|
@ -1352,6 +1344,7 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
{
|
{
|
||||||
m_scanparam->is_duplex = 1;
|
m_scanparam->is_duplex = 1;
|
||||||
m_scanparam->autodescrew = 1;//合并可用时 默认自动纠偏
|
m_scanparam->autodescrew = 1;//合并可用时 默认自动纠偏
|
||||||
|
m_scanparam->is_autodiscradblank_normal = m_scanparam->is_autodiscradblank_vince = 0;
|
||||||
}
|
}
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
@ -1380,6 +1373,9 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
case Msg::Set: {
|
case Msg::Set: {
|
||||||
auto mech = data.currentItem<CapType::IAutoDiscardBlankPages>();
|
auto mech = data.currentItem<CapType::IAutoDiscardBlankPages>();
|
||||||
m_scanparam->is_autodiscradblank_normal = (Int32)mech == (Int32)DiscardBlankPages::Auto;
|
m_scanparam->is_autodiscradblank_normal = (Int32)mech == (Int32)DiscardBlankPages::Auto;
|
||||||
|
m_scanparam->is_duplex = 1;
|
||||||
|
m_scanparam->en_fold = 0;
|
||||||
|
m_scanparam->is_autodiscradblank_vince = 0;
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -1406,6 +1402,8 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
case Msg::Set: {
|
case Msg::Set: {
|
||||||
auto mech = data.currentItem<Bool>();
|
auto mech = data.currentItem<Bool>();
|
||||||
m_scanparam->is_autodiscradblank_vince = mech;
|
m_scanparam->is_autodiscradblank_vince = mech;
|
||||||
|
m_scanparam->is_duplex = 1;
|
||||||
|
m_scanparam->en_fold = 0;
|
||||||
if (mech)
|
if (mech)
|
||||||
m_scanparam->is_autodiscradblank_normal = 0;
|
m_scanparam->is_autodiscradblank_normal = 0;
|
||||||
return success();
|
return success();
|
||||||
|
@ -1916,7 +1914,6 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
||||||
Result HuagaoDs::identityCloseDs(const Identity&) {
|
Result HuagaoDs::identityCloseDs(const Identity&) {
|
||||||
// no need to explicitly release any resources if using RAII
|
// no need to explicitly release any resources if using RAII
|
||||||
// TWPP will free the whole source on its own after this method
|
// TWPP will free the whole source on its own after this method
|
||||||
//FileTools::write_log("D:\\1.txt", "identityCloseDs enter");
|
|
||||||
|
|
||||||
if (guiIndicator.get())
|
if (guiIndicator.get())
|
||||||
guiIndicator.reset();
|
guiIndicator.reset();
|
||||||
|
@ -1926,10 +1923,8 @@ Result HuagaoDs::identityCloseDs(const Identity&) {
|
||||||
|
|
||||||
if (guiBridge.get())
|
if (guiBridge.get())
|
||||||
guiBridge.reset();
|
guiBridge.reset();
|
||||||
//FileTools::write_log("D:\\1.txt", "identityCloseDs enter1");
|
|
||||||
|
|
||||||
scanner.reset();
|
scanner.reset();
|
||||||
//FileTools::write_log("D:\\1.txt", "identityCloseDs enter2");
|
|
||||||
|
|
||||||
if (hMutex)
|
if (hMutex)
|
||||||
{
|
{
|
||||||
|
@ -1937,7 +1932,6 @@ Result HuagaoDs::identityCloseDs(const Identity&) {
|
||||||
CloseHandle(hMutex);
|
CloseHandle(hMutex);
|
||||||
}
|
}
|
||||||
//saveGscanCapSetting();
|
//saveGscanCapSetting();
|
||||||
//FileTools::write_log("D:\\1.txt", "identityCloseDs exit");
|
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1948,19 +1942,16 @@ Result HuagaoDs::pendingXfersGet(const Identity&, PendingXfers& data) {
|
||||||
|
|
||||||
Result HuagaoDs::pendingXfersEnd(const Identity&, PendingXfers& data) {
|
Result HuagaoDs::pendingXfersEnd(const Identity&, PendingXfers& data) {
|
||||||
//!< end xfer if set count 0
|
//!< end xfer if set count 0
|
||||||
//FileTools::write_log("D:\\1.txt", "enter pendingXfersEnd");
|
|
||||||
if (bmpData.size() > 0)
|
if (bmpData.size() > 0)
|
||||||
bmpData.clear();
|
bmpData.clear();
|
||||||
int ret = scanner->aquire_bmpdata(bmpData);
|
int ret = scanner->aquire_bmpdata(bmpData);
|
||||||
//FileTools::write_log("D:\\1.txt", "enter pendingXfersEnd1");
|
|
||||||
|
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
scanner->Set_ErrorCode(0);
|
scanner->Set_ErrorCode(0);
|
||||||
guiIndicator->ShowWindow(SW_HIDE);
|
if(guiIndicator.get())
|
||||||
|
guiIndicator->ShowWindow(SW_HIDE);
|
||||||
//guiIndicator.reset();
|
//guiIndicator.reset();
|
||||||
if (ret != -1) {
|
if (ret != -1) {
|
||||||
//ShellExecute(NULL, _T("open"), _T("aa.exe"), CString("1"), _T(""), SW_HIDE);
|
|
||||||
//MessageBox(guiTwain ? guiTwain->m_hWnd : NULL, noticeMsgMap[ret], _T("Ìáʾ"), MB_SYSTEMMODAL | MB_OK | MB_ICONINFORMATION);//
|
|
||||||
CString str;
|
CString str;
|
||||||
str.Format(_T("%d"), ret);
|
str.Format(_T("%d"), ret);
|
||||||
ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), str, NULL, SW_HIDE);
|
ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), str, NULL, SW_HIDE);
|
||||||
|
@ -1981,7 +1972,6 @@ Result HuagaoDs::pendingXfersEnd(const Identity&, PendingXfers& data) {
|
||||||
#endif // LOG_NORMAL
|
#endif // LOG_NORMAL
|
||||||
|
|
||||||
data.setCount(m_pendingXfers);
|
data.setCount(m_pendingXfers);
|
||||||
//FileTools::write_log("D:\\1.txt", "exit pendingXfersEnd"+ m_pendingXfers==0?" 0":"1");
|
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2025,7 +2015,6 @@ Result HuagaoDs::userInterfaceEnable(const Identity&, UserInterface& ui) {
|
||||||
m_pendingXfers = 1;
|
m_pendingXfers = 1;
|
||||||
m_memXferYOff = 0;
|
m_memXferYOff = 0;
|
||||||
scanner->ResetMsgFiter();
|
scanner->ResetMsgFiter();
|
||||||
//writelog("userInterfaceEnable");
|
|
||||||
if (!ui.showUi()) {
|
if (!ui.showUi()) {
|
||||||
// this is an exception when we want to set state explicitly, notifyXferReady can be called only in enabled state
|
// this is an exception when we want to set state explicitly, notifyXferReady can be called only in enabled state
|
||||||
// with hidden UI, the usual workflow DsState::Enabled -> notifyXferReady() -> DsState::XferReady is a single step
|
// with hidden UI, the usual workflow DsState::Enabled -> notifyXferReady() -> DsState::XferReady is a single step
|
||||||
|
@ -2086,7 +2075,7 @@ Result HuagaoDs::imageLayoutGet(const Identity&, ImageLayout& data) {
|
||||||
data.setDocumentNumber(1);
|
data.setDocumentNumber(1);
|
||||||
data.setFrameNumber(1);
|
data.setFrameNumber(1);
|
||||||
data.setPageNumber(1);
|
data.setPageNumber(1);
|
||||||
data.setFrame(Frame(0, 0, static_cast<float>(dib->biWidth) / RESOLUTIONX, static_cast<float>(dib->biHeight) / RESOLUTIONX));
|
data.setFrame(Frame(0, 0, static_cast<float>(dib->biWidth) / m_scanparam->resolution_dst, static_cast<float>(dib->biHeight) / m_scanparam->resolution_dst));
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2262,12 +2251,11 @@ Twpp::Result HuagaoDs::imageFileXferGet(const Twpp::Identity& origin)
|
||||||
if (bmpData.size() > 0) {
|
if (bmpData.size() > 0) {
|
||||||
fwrite(bmpData.data(), 1, bmpData.size(), pfile);
|
fwrite(bmpData.data(), 1, bmpData.size(), pfile);
|
||||||
fclose(pfile);
|
fclose(pfile);
|
||||||
return success();
|
return Result(ReturnCode::XferDone, ConditionCode::Success);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Result(ReturnCode::Failure, ConditionCode::BadValue);
|
return Result(ReturnCode::Failure, ConditionCode::BadValue);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case ImageFileFormat::Tiff:
|
case ImageFileFormat::Tiff:
|
||||||
case ImageFileFormat::Jfif: {
|
case ImageFileFormat::Jfif: {
|
||||||
|
|
||||||
|
@ -2285,9 +2273,8 @@ Twpp::Result HuagaoDs::imageFileXferGet(const Twpp::Identity& origin)
|
||||||
compression_params.push_back(m_jpegQuality);
|
compression_params.push_back(m_jpegQuality);
|
||||||
|
|
||||||
cv::imwrite(filename, ims, compression_params);
|
cv::imwrite(filename, ims, compression_params);
|
||||||
return success();
|
return Result(ReturnCode::XferDone, ConditionCode::Success);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2319,7 +2306,6 @@ Twpp::Result HuagaoDs::showTwainUI(Twpp::UserInterface& ui, bool bUiOnly)
|
||||||
saveGscanCapSetting();
|
saveGscanCapSetting();
|
||||||
if (startScan() == success()) {
|
if (startScan() == success()) {
|
||||||
notifyXferReady();
|
notifyXferReady();
|
||||||
//FileTools::write_log("E:\\Users\\huago\\Desktop\\1.txt", "notifyXferReady");
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_pendingXfers = 0;
|
m_pendingXfers = 0;
|
||||||
|
@ -2346,6 +2332,9 @@ Twpp::Result HuagaoDs::showTwainUI(Twpp::UserInterface& ui, bool bUiOnly)
|
||||||
std::string hardwareversion = scanner->GetFWVersion();
|
std::string hardwareversion = scanner->GetFWVersion();
|
||||||
guiTwain.reset(new CTwainUI(bUiOnly ? glueUiOnly : glue, *m_scanparam, bUiOnly ? "确定" : "扫描", hardwareversion, serialnum));
|
guiTwain.reset(new CTwainUI(bUiOnly ? glueUiOnly : glue, *m_scanparam, bUiOnly ? "确定" : "扫描", hardwareversion, serialnum));
|
||||||
guiTwain->Create(IDD_TWAINUI, parent);
|
guiTwain->Create(IDD_TWAINUI, parent);
|
||||||
|
CRect newRect;
|
||||||
|
::GetWindowRect(static_cast<HWND>(ui.parent().raw()), &newRect);
|
||||||
|
SetWindowPos(guiTwain->m_hWnd, HWND_TOP, newRect.left + 20, newRect.top + 100, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOACTIVATE);
|
||||||
guiTwain->ShowWindow(SW_SHOWNORMAL);
|
guiTwain->ShowWindow(SW_SHOWNORMAL);
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
@ -2377,6 +2366,7 @@ void HuagaoDs::updataGscanCap()
|
||||||
GScanCap cfs = js.ReadGscanCap();
|
GScanCap cfs = js.ReadGscanCap();
|
||||||
cfs.resolution_native = 200.0f;
|
cfs.resolution_native = 200.0f;
|
||||||
cfs.threshold = 128;
|
cfs.threshold = 128;
|
||||||
|
//FileTools::write_log("D:\\2.txt", "is_autodiscradblank_normal = " + to_string(cfs.is_autodiscradblank_normal) + "is_autodiscradblank_vince =" + to_string(cfs.is_autodiscradblank_vince));
|
||||||
if (cfs.is_autocrop)
|
if (cfs.is_autocrop)
|
||||||
{
|
{
|
||||||
m_autoboarderdetcet = true;
|
m_autoboarderdetcet = true;
|
||||||
|
@ -2398,6 +2388,8 @@ Twpp::Result HuagaoDs::startScan()
|
||||||
#endif //
|
#endif //
|
||||||
|
|
||||||
scanner->config_params(*m_scanparam);
|
scanner->config_params(*m_scanparam);
|
||||||
|
//FileTools::write_log("D:\\2.txt", "is_autodiscradblank_normal = " + to_string(m_scanparam->is_autodiscradblank_normal) + " 222is_autodiscradblank_vince =" + to_string(m_scanparam->is_autodiscradblank_vince));
|
||||||
|
|
||||||
if (m_bIndicator) {
|
if (m_bIndicator) {
|
||||||
//!< cancel button push
|
//!< cancel button push
|
||||||
auto stopFunc = [this]() {
|
auto stopFunc = [this]() {
|
||||||
|
@ -2422,7 +2414,8 @@ Twpp::Result HuagaoDs::startScan()
|
||||||
int retCode = scanner->aquire_bmpdata(bmpData);
|
int retCode = scanner->aquire_bmpdata(bmpData);
|
||||||
if (retCode != 0) {
|
if (retCode != 0) {
|
||||||
scanner->Set_ErrorCode(0);
|
scanner->Set_ErrorCode(0);
|
||||||
guiIndicator.reset();
|
if(guiIndicator.get())
|
||||||
|
guiIndicator.reset();
|
||||||
if (retCode != -1) {
|
if (retCode != -1) {
|
||||||
//MessageBox(guiTwain ? guiTwain->m_hWnd : NULL, noticeMsgMap[retCode], _T("提示"), MB_SYSTEMMODAL | MB_OK | MB_ICONINFORMATION);
|
//MessageBox(guiTwain ? guiTwain->m_hWnd : NULL, noticeMsgMap[retCode], _T("提示"), MB_SYSTEMMODAL | MB_OK | MB_ICONINFORMATION);
|
||||||
CString str;
|
CString str;
|
||||||
|
@ -2444,7 +2437,9 @@ Twpp::Result HuagaoDs::startScan()
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
guiIndicator.reset();
|
if(guiIndicator.get())
|
||||||
|
guiIndicator.reset();
|
||||||
|
|
||||||
if (guiTwain.get()) {
|
if (guiTwain.get()) {
|
||||||
((CTwainUI*)(guiTwain.get()))->EnableID_OKorID_Cancel(true);
|
((CTwainUI*)(guiTwain.get()))->EnableID_OKorID_Cancel(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,6 @@ private:
|
||||||
Twpp::UInt16 m_autosize = 0;
|
Twpp::UInt16 m_autosize = 0;
|
||||||
Twpp::Bool m_autoscan = true;
|
Twpp::Bool m_autoscan = true;
|
||||||
Twpp::Bool m_autoboarderdetcet = false;
|
Twpp::Bool m_autoboarderdetcet = false;
|
||||||
Twpp::Int16 m_capXferCount = -1;
|
|
||||||
Twpp::Fix32 m_brightness = 0.0f;
|
Twpp::Fix32 m_brightness = 0.0f;
|
||||||
Twpp::XferMech m_capXferMech = Twpp::XferMech::Native;
|
Twpp::XferMech m_capXferMech = Twpp::XferMech::Native;
|
||||||
Twpp::PixelType m_capPixelType = Twpp::PixelType::Rgb;
|
Twpp::PixelType m_capPixelType = Twpp::PixelType::Rgb;
|
||||||
|
|
Loading…
Reference in New Issue