diff --git a/src/add-ons/print/shared/PrinterDriverAddOn.cpp b/src/add-ons/print/shared/PrinterDriverAddOn.cpp new file mode 100644 index 0000000000..215d62a6cf --- /dev/null +++ b/src/add-ons/print/shared/PrinterDriverAddOn.cpp @@ -0,0 +1,20 @@ +extern "C" _EXPORT char * add_printer(char * printer_name) { + return printer_name; +} + +extern "C" _EXPORT BMessage * config_page(BNode * spool_dir, BMessage * msg) { + return NULL; +} + +extern "C" _EXPORT BMessage * config_job(BNode * spool_dir, BMessage * msg) { + return NULL; +} + +extern "C" _EXPORT BMessage * default_settings(BNode * printer) { + return NULL; +} + +extern "C" _EXPORT BMessage * take_job(BFile * spool_file, BNode * spool_dir, BMessage * msg) { + return NULL; +} + diff --git a/src/add-ons/print/shared/TransportAddOn.cpp b/src/add-ons/print/shared/TransportAddOn.cpp new file mode 100644 index 0000000000..9218eb9911 --- /dev/null +++ b/src/add-ons/print/shared/TransportAddOn.cpp @@ -0,0 +1,24 @@ +#include "TransportAddOn.h" + +static BDataIO* gTransport = NULL; + +extern "C" _EXPORT BDataIO *init_transport(BMessage *msg) { + if (msg != NULL && gTransport == NULL) { + const char* printer_name = msg->FindString("printer_name"); + if (printer_name && *printer_name != '\0') { + BDirectory printer(printer_name); + if (printer.InitCheck() == B_OK) { + gTransport = instanciate_transport(&printer, msg); + return gTransport; + } + } + } + return NULL; +} + +extern "C" _EXPORT void exit_transport() { + if (gTransport) { + delete gTransport; gTransport = NULL; + } +} + diff --git a/src/add-ons/print/shared/TransportAddOnTemplate.cpp b/src/add-ons/print/shared/TransportAddOnTemplate.cpp new file mode 100644 index 0000000000..f60e0e7fd4 --- /dev/null +++ b/src/add-ons/print/shared/TransportAddOnTemplate.cpp @@ -0,0 +1,39 @@ +// Transport Add On Template +#include "TransportAddOn.h" + +class Transport : public BDataIO { + +public: + Transport(BDirectory* printer, BMessage* msg); + ~Transport(); + + status_t InitCheck() { return B_ERROR; } + + ssize_t Read(void* buffer, size_t size); + ssize_t Write(const void* buffer, size_t size); +}; + +// Impelmentation of Transport +Transport::Transport(BDirectory* printer, BMessage* msg) +{ +} + +Transport::~Transport() { +} + +ssize_t Transport::Read(void* buffer, size_t size) { + return 0; +} + +ssize_t Transport::Write(const void* buffer, size_t size) { + return 0; +} + +BDataIO* instanciate_transport(BDirectory* printer, BMessage* msg) { + Transport* transport = new Transport(printer, msg); + if (transport->InitCheck() == B_OK) { + return transport; + } else { + delete transport; return NULL; + } +}