X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdevices%2Fdevice.hpp;h=ceca0777118b106a105ae00b499eb6e60b9c380a;hb=09f55d9665efb3b17ba7de4bae47be6989e884fe;hp=529fdd5b33c42e0bc52fc42bb1e49a5f72559c38;hpb=da30ecb7e72bd2547e524258efa5ec642988b70b;p=pulseview.git
diff --git a/pv/devices/device.hpp b/pv/devices/device.hpp
index 529fdd5..ceca077 100644
--- a/pv/devices/device.hpp
+++ b/pv/devices/device.hpp
@@ -14,22 +14,25 @@
* GNU 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ * along with this program; if not, see .
*/
#ifndef PULSEVIEW_PV_DEVICES_DEVICE_HPP
#define PULSEVIEW_PV_DEVICES_DEVICE_HPP
#include
-
+#include
namespace sigrok {
+class ConfigKey;
class Device;
class Session;
} // namespace sigrok
namespace pv {
+
+class DeviceManager;
+
namespace devices {
class Device
@@ -44,7 +47,27 @@ public:
std::shared_ptr device() const;
- virtual void create() = 0;
+ template
+ T read_config(const sigrok::ConfigKey *key, const T default_value = 0);
+
+ /**
+ * Builds the full name. It only contains all the fields.
+ */
+ virtual std::string full_name() const = 0;
+
+ /**
+ * Builds the display name. It only contains fields as required.
+ * @param device_manager a reference to the device manager is needed
+ * so that other similarly titled devices can be detected.
+ */
+ virtual std::string display_name(
+ const DeviceManager &device_manager) const = 0;
+
+ virtual void open() = 0;
+
+ virtual void close() = 0;
+
+ virtual void start();
virtual void run();