support specifying pos printer
This commit is contained in:
parent
4cd0b42072
commit
98ba6db5a3
2 changed files with 25 additions and 3 deletions
|
@ -35,14 +35,24 @@ PosPrinter::PosPrinter()
|
||||||
libusb_exit(contextPtr_);
|
libusb_exit(contextPtr_);
|
||||||
throw std::runtime_error("Could not receive device list");
|
throw std::runtime_error("Could not receive device list");
|
||||||
}
|
}
|
||||||
|
|
||||||
int numDevice = -1;
|
int numDevice = -1;
|
||||||
|
|
||||||
for (int i = 0; i < devCount; ++i) {
|
for (int i = 0; i < devCount; ++i) {
|
||||||
libusb_device_descriptor desc;
|
libusb_device_descriptor desc;
|
||||||
libusb_get_device_descriptor(devList[i], &desc);
|
libusb_get_device_descriptor(devList[i], &desc);
|
||||||
for (const auto& supported : supportedPrinters_.models) {
|
|
||||||
if (desc.idVendor == supported.first && desc.idProduct == supported.second) {
|
if (printerDevice_.idVendor == 0) {
|
||||||
|
for (const auto& supported : supportedPrinters_.models) {
|
||||||
|
if (desc.idVendor == supported.first && desc.idProduct == supported.second) {
|
||||||
|
numDevice = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (desc.idVendor == printerDevice_.idVendor &&
|
||||||
|
desc.idProduct == printerDevice_.idProduct) {
|
||||||
numDevice = i;
|
numDevice = i;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,6 +85,11 @@ PosPrinter::PosPrinter()
|
||||||
libusb_free_device_list(devList, 1);
|
libusb_free_device_list(devList, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PosPrinter::PosPrinter(const PrinterDevice& printerDevice) : printerDevice_{printerDevice}
|
||||||
|
{
|
||||||
|
PosPrinter();
|
||||||
|
}
|
||||||
|
|
||||||
PosPrinter::~PosPrinter()
|
PosPrinter::~PosPrinter()
|
||||||
{
|
{
|
||||||
if (devicePtr_) {
|
if (devicePtr_) {
|
||||||
|
|
|
@ -16,10 +16,16 @@ struct SupportedPrinters {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct PrinterDevice {
|
||||||
|
int idVendor{};
|
||||||
|
int idProduct{};
|
||||||
|
};
|
||||||
|
|
||||||
class PosPrinter
|
class PosPrinter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PosPrinter();
|
PosPrinter();
|
||||||
|
PosPrinter(const PrinterDevice& printerDevice);
|
||||||
~PosPrinter();
|
~PosPrinter();
|
||||||
void write(const std::string& text);
|
void write(const std::string& text);
|
||||||
void printHeader();
|
void printHeader();
|
||||||
|
@ -43,6 +49,7 @@ class PosPrinter
|
||||||
libusb_context* contextPtr_{};
|
libusb_context* contextPtr_{};
|
||||||
libusb_device_handle* devicePtr_{};
|
libusb_device_handle* devicePtr_{};
|
||||||
SupportedPrinters supportedPrinters_;
|
SupportedPrinters supportedPrinters_;
|
||||||
|
PrinterDevice printerDevice_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in a new issue