File indexing completed on 2024-10-06 04:19:19

0001 /*
0002  * SPDX-FileCopyrightText: 2022 Alexander Stippich <a.stippich@gmx.net>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 #ifndef KSANE_DEVICEINFORMATION_H
0008 #define KSANE_DEVICEINFORMATION_H
0009 
0010 #include <memory>
0011 
0012 // Qt includes
0013 #include <QString>
0014 
0015 #include "ksanecore_export.h"
0016 
0017 namespace KSaneCore
0018 {
0019 
0020 class DeviceInformationPrivate;
0021 
0022 /**
0023  * A wrapper class providing access to the internal information
0024  * of the scanner device provided by SANE
0025  */
0026 class KSANECORE_EXPORT DeviceInformation
0027 {
0028 
0029 public:
0030     explicit DeviceInformation();
0031     ~DeviceInformation();
0032 
0033     /** This function returns a unique device name for the scanner device
0034      * @return the unique device name name */
0035     QString name() const;
0036 
0037     /** This function returns the device vendor string of the scanner device
0038      * @return the device vendor string */
0039     QString vendor() const;
0040 
0041     /** This function returns the device vendor string of the scanner device
0042      * @return the device model name */
0043     QString model() const;
0044 
0045     /** This function returns the device type (e.g., "flatbed scanner")
0046      * @return the device type */
0047     QString type() const;
0048 
0049 protected:
0050     std::unique_ptr<KSaneCore::DeviceInformationPrivate> d;
0051 };
0052 
0053 } // namespace KSaneCore
0054 
0055 #endif // KSANE_DEVICEINFORMATION_H
0056