* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef PULSEVIEW_PV_DEVICES_HARDWAREDEVICE_HPP
#include "device.hpp"
+using std::shared_ptr;
+using std::string;
+
namespace sigrok {
class Context;
class HardwareDevice;
class HardwareDevice final : public Device
{
public:
- HardwareDevice(const std::shared_ptr<sigrok::Context> &context,
- std::shared_ptr<sigrok::HardwareDevice> device);
+ HardwareDevice(const shared_ptr<sigrok::Context> &context,
+ shared_ptr<sigrok::HardwareDevice> device);
~HardwareDevice();
- std::shared_ptr<sigrok::HardwareDevice> hardware_device() const;
+ shared_ptr<sigrok::HardwareDevice> hardware_device() const;
+
+ /**
+ * Builds the full name. It only contains all the fields.
+ */
+ string full_name() const;
+
+ /**
+ * 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.
+ */
+ string display_name(const DeviceManager &device_manager) const;
+
+ void open();
- void create();
+ void close();
private:
- const std::shared_ptr<sigrok::Context> context_;
+ const shared_ptr<sigrok::Context> context_;
+ bool device_open_;
};
} // namespace devices