diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2021-02-16 18:24:46 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2021-02-16 18:24:46 +0100 |
commit | ecaaf250cb33ff61f37a7b441f2337584a655350 (patch) | |
tree | 4303648095deff998ae20c2393b56db527742ac9 /backend/gt68xx_low.c | |
parent | 5793a221e112fa49073de0137d6bfa750a61b0a1 (diff) | |
parent | 351b7328520c16730ceb46e5acae16038c42185e (diff) |
Update upstream source from tag 'upstream/1.0.32'
Update to upstream version '1.0.32'
with Debian dir 2c1111c59d9d68bcbf479a4a4de7697fe2de127f
Diffstat (limited to 'backend/gt68xx_low.c')
-rw-r--r-- | backend/gt68xx_low.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/backend/gt68xx_low.c b/backend/gt68xx_low.c index 3ea4590..5aa84ac 100644 --- a/backend/gt68xx_low.c +++ b/backend/gt68xx_low.c @@ -16,9 +16,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA. + along with this program. If not, see <https://www.gnu.org/licenses/>. As a special exception, the authors of SANE give permission for additional uses of the libraries contained in this release of SANE. @@ -176,6 +174,8 @@ gt68xx_device_new (GT68xx_Device ** dev_return) dev->manual_selection = SANE_FALSE; + dev->scan_started = SANE_FALSE; + #ifdef USE_FORK dev->shm_channel = NULL; #endif /* USE_FORK */ @@ -626,7 +626,14 @@ gt68xx_device_start_scan (GT68xx_Device * dev) { CHECK_DEV_ACTIVE (dev, "gt68xx_device_start_scan"); if (dev->model->command_set->start_scan) - return (*dev->model->command_set->start_scan) (dev); + { + if (!dev->scan_started) + { + dev->scan_started = SANE_TRUE; + return (*dev->model->command_set->start_scan) (dev); + } + return SANE_STATUS_DEVICE_BUSY; + } else return SANE_STATUS_UNSUPPORTED; } @@ -681,7 +688,14 @@ gt68xx_device_stop_scan (GT68xx_Device * dev) { CHECK_DEV_ACTIVE (dev, "gt68xx_device_stop_scan"); if (dev->model->command_set->stop_scan) - return (*dev->model->command_set->stop_scan) (dev); + { + if (dev->scan_started) + { + dev->scan_started = SANE_FALSE; + return (*dev->model->command_set->stop_scan) (dev); + } + return SANE_STATUS_GOOD; // Essentially a NOP. + } else return SANE_STATUS_UNSUPPORTED; } |