Changeset View
Changeset View
Standalone View
Standalone View
src/ksanescanthread.cpp
Show All 37 Lines | 36 | KSaneScanThread::KSaneScanThread(SANE_Handle handle, QByteArray *data): | |||
---|---|---|---|---|---|
38 | m_data(data), | 38 | m_data(data), | ||
39 | m_saneHandle(handle), | 39 | m_saneHandle(handle), | ||
40 | m_frameSize(0), | 40 | m_frameSize(0), | ||
41 | m_frameRead(0), | 41 | m_frameRead(0), | ||
42 | m_frame_t_count(0), | 42 | m_frame_t_count(0), | ||
43 | m_dataSize(0), | 43 | m_dataSize(0), | ||
44 | m_saneStatus(SANE_STATUS_GOOD), | 44 | m_saneStatus(SANE_STATUS_GOOD), | ||
45 | m_readStatus(READ_READY), | 45 | m_readStatus(READ_READY), | ||
46 | m_invertColors(false), | 46 | m_saneStartDone(false), | ||
47 | m_saneStartDone(false) | 47 | m_invertColors(false) | ||
48 | {} | 48 | {} | ||
49 | 49 | | |||
50 | void KSaneScanThread::setImageInverted(bool inverted) | 50 | void KSaneScanThread::setImageInverted(bool inverted) | ||
51 | { | 51 | { | ||
52 | m_invertColors = inverted; | 52 | m_invertColors = inverted; | ||
53 | } | 53 | } | ||
54 | 54 | | |||
55 | SANE_Status KSaneScanThread::saneStatus() | 55 | SANE_Status KSaneScanThread::saneStatus() | ||
56 | { | 56 | { | ||
57 | return m_saneStatus; | 57 | return m_saneStatus; | ||
58 | } | 58 | } | ||
59 | 59 | | |||
60 | KSaneScanThread::ReadStatus KSaneScanThread::frameStatus() | 60 | KSaneScanThread::ReadStatus KSaneScanThread::frameStatus() | ||
61 | { | 61 | { | ||
62 | return m_readStatus; | 62 | return m_readStatus; | ||
63 | } | 63 | } | ||
64 | 64 | | |||
65 | void KSaneScanThread::cancelScan() | 65 | void KSaneScanThread::cancelScan() | ||
66 | { | 66 | { | ||
67 | m_readStatus = READ_CANCEL; | 67 | m_readStatus = READ_CANCEL; | ||
68 | } | 68 | } | ||
69 | 69 | | |||
70 | int KSaneScanThread::scanProgress() | | |||
71 | { | | |||
72 | if (m_dataSize == 0) { | | |||
73 | return 0; | | |||
74 | } | | |||
75 | | ||||
76 | int bytesRead; | | |||
77 | | ||||
78 | if (m_frameSize < m_dataSize) { | | |||
79 | bytesRead = m_frameRead + (m_frameSize * m_frame_t_count); | | |||
80 | } else { | | |||
81 | bytesRead = m_frameRead; | | |||
82 | } | | |||
83 | return (int)(((float)bytesRead * 100.0) / m_dataSize); | | |||
84 | } | | |||
85 | | ||||
86 | SANE_Parameters KSaneScanThread::saneParameters() | 70 | SANE_Parameters KSaneScanThread::saneParameters() | ||
87 | { | 71 | { | ||
88 | return m_params; | 72 | return m_params; | ||
89 | } | 73 | } | ||
90 | 74 | | |||
91 | void KSaneScanThread::run() | 75 | void KSaneScanThread::run() | ||
92 | { | 76 | { | ||
93 | m_dataSize = 0; | 77 | m_dataSize = 0; | ||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Line(s) | |||||
137 | m_frameRead = 0; | 121 | m_frameRead = 0; | ||
138 | m_frame_t_count = 0; | 122 | m_frame_t_count = 0; | ||
139 | m_readStatus = READ_ON_GOING; | 123 | m_readStatus = READ_ON_GOING; | ||
140 | while (m_readStatus == READ_ON_GOING) { | 124 | while (m_readStatus == READ_ON_GOING) { | ||
141 | readData(); | 125 | readData(); | ||
142 | } | 126 | } | ||
143 | } | 127 | } | ||
144 | 128 | | |||
129 | int KSaneScanThread::scanProgress() | ||||
130 | { | ||||
131 | if (m_dataSize == 0) { | ||||
132 | return 0; | ||||
133 | } | ||||
134 | | ||||
135 | int bytesRead; | ||||
136 | | ||||
137 | if (m_frameSize < m_dataSize) { | ||||
138 | bytesRead = m_frameRead + (m_frameSize * m_frame_t_count); | ||||
139 | } else { | ||||
140 | bytesRead = m_frameRead; | ||||
141 | } | ||||
142 | return (int)(((float)bytesRead * 100.0) / m_dataSize); | ||||
143 | } | ||||
144 | | ||||
145 | void KSaneScanThread::readData() | 145 | void KSaneScanThread::readData() | ||
146 | { | 146 | { | ||
147 | SANE_Int readBytes = 0; | 147 | SANE_Int readBytes = 0; | ||
148 | m_saneStatus = sane_read(m_saneHandle, m_readData, SCAN_READ_CHUNK_SIZE, &readBytes); | 148 | m_saneStatus = sane_read(m_saneHandle, m_readData, SCAN_READ_CHUNK_SIZE, &readBytes); | ||
149 | 149 | | |||
150 | switch (m_saneStatus) { | 150 | switch (m_saneStatus) { | ||
151 | case SANE_STATUS_GOOD: | 151 | case SANE_STATUS_GOOD: | ||
152 | // continue to parsing the data | 152 | // continue to parsing the data | ||
▲ Show 20 Lines • Show All 155 Lines • Show Last 20 Lines |