Change build system to meson
This commit is contained in:
82
.clang-format
Normal file
82
.clang-format
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# Google C/C++ Code Style settings
|
||||||
|
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||||
|
|
||||||
|
Language: Cpp
|
||||||
|
BasedOnStyle: Google
|
||||||
|
AccessModifierOffset: -1
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
AlignConsecutiveAssignments: None
|
||||||
|
AlignOperands: Align
|
||||||
|
AllowAllArgumentsOnNextLine: true
|
||||||
|
AllowAllConstructorInitializersOnNextLine: true
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||||||
|
AllowShortBlocksOnASingleLine: Empty
|
||||||
|
AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
AllowShortFunctionsOnASingleLine: Inline
|
||||||
|
AllowShortIfStatementsOnASingleLine: Never
|
||||||
|
AllowShortLambdasOnASingleLine: Inline
|
||||||
|
AllowShortLoopsOnASingleLine: false
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
AlwaysBreakTemplateDeclarations: Yes
|
||||||
|
BinPackArguments: true
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
BraceWrapping:
|
||||||
|
AfterCaseLabel: false
|
||||||
|
AfterClass: false
|
||||||
|
AfterStruct: false
|
||||||
|
AfterControlStatement: Never
|
||||||
|
AfterEnum: false
|
||||||
|
AfterFunction: false
|
||||||
|
AfterNamespace: false
|
||||||
|
AfterUnion: false
|
||||||
|
AfterExternBlock: false
|
||||||
|
BeforeCatch: false
|
||||||
|
BeforeElse: false
|
||||||
|
BeforeLambdaBody: false
|
||||||
|
IndentBraces: false
|
||||||
|
SplitEmptyFunction: false
|
||||||
|
SplitEmptyRecord: false
|
||||||
|
SplitEmptyNamespace: false
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
BreakConstructorInitializers: BeforeColon
|
||||||
|
BreakInheritanceList: BeforeColon
|
||||||
|
ColumnLimit: 80
|
||||||
|
CompactNamespaces: false
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
Cpp11BracedListStyle: true
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
EmptyLineBeforeAccessModifier: LogicalBlock
|
||||||
|
FixNamespaceComments: true
|
||||||
|
IncludeBlocks: Preserve
|
||||||
|
IndentCaseLabels: true
|
||||||
|
IndentPPDirectives: None
|
||||||
|
IndentWidth: 2
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||||
|
MaxEmptyLinesToKeep: 1
|
||||||
|
NamespaceIndentation: None
|
||||||
|
ObjCSpaceAfterProperty: false
|
||||||
|
ObjCSpaceBeforeProtocolList: true
|
||||||
|
PointerAlignment: Left
|
||||||
|
ReflowComments: false
|
||||||
|
SeparateDefinitionBlocks: Always
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpaceAfterLogicalNot: false
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
SpaceBeforeCpp11BracedList: false
|
||||||
|
SpaceBeforeCtorInitializerColon: true
|
||||||
|
SpaceBeforeInheritanceColon: true
|
||||||
|
SpaceBeforeParens: ControlStatements
|
||||||
|
SpaceBeforeRangeBasedForLoopColon: true
|
||||||
|
SpaceBeforeSquareBrackets: false
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 2
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInContainerLiterals: false
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
Standard: c++17
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Never
|
2
.clang-format-include
Normal file
2
.clang-format-include
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
inc/*
|
||||||
|
src/*
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,4 @@
|
|||||||
build/
|
builddir/
|
||||||
.cache/
|
.cache/
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/c_cpp_properties.json
|
!.vscode/c_cpp_properties.json
|
||||||
|
13
.vscode/c_cpp_properties.json
vendored
13
.vscode/c_cpp_properties.json
vendored
@@ -1 +1,12 @@
|
|||||||
{}
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Linux",
|
||||||
|
"compilerPath": "/usr/bin/clang",
|
||||||
|
"cStandard": "c11",
|
||||||
|
"cppStandard": "c++17",
|
||||||
|
"compileCommands": "/builddir/compile_commands.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@@ -2,5 +2,7 @@
|
|||||||
"clangd.arguments": [ "-log=verbose",
|
"clangd.arguments": [ "-log=verbose",
|
||||||
"-pretty",
|
"-pretty",
|
||||||
"--background-index",
|
"--background-index",
|
||||||
"--compile-commands-dir=${workspaceFolder}/build"]
|
"--compile-commands-dir=${workspaceFolder}/builddir",
|
||||||
|
"-std=c++17"
|
||||||
|
]
|
||||||
}
|
}
|
@@ -1,21 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.5)
|
|
||||||
|
|
||||||
project(ptprnt LANGUAGES CXX)
|
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "Set C++ Compiler Flags" FORCE)
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
||||||
|
|
||||||
|
|
||||||
set(SOURCES
|
|
||||||
src/P700Printer.cpp
|
|
||||||
src/P700Driver.cpp
|
|
||||||
src/main.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME} ${SOURCES})
|
|
||||||
|
|
||||||
target_include_directories(${PROJECT_NAME}
|
|
||||||
PUBLIC
|
|
||||||
${PROJECT_SOURCE_DIR}/inc
|
|
||||||
)
|
|
@@ -5,7 +5,7 @@
|
|||||||
namespace ptprnt::bitmap {
|
namespace ptprnt::bitmap {
|
||||||
|
|
||||||
struct Bitmap {
|
struct Bitmap {
|
||||||
std::vector<std::vector<int>> map;
|
std::vector<std::vector<int>> map;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::bitmap
|
@@ -5,8 +5,8 @@
|
|||||||
namespace ptprnt::driver {
|
namespace ptprnt::driver {
|
||||||
|
|
||||||
struct info {
|
struct info {
|
||||||
std::string name{""};
|
std::string name{""};
|
||||||
std::string version{""};
|
std::string version{""};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::driver
|
@@ -5,43 +5,40 @@
|
|||||||
|
|
||||||
namespace ptprnt::driver {
|
namespace ptprnt::driver {
|
||||||
|
|
||||||
class IDriver
|
class IDriver {
|
||||||
{
|
public:
|
||||||
public:
|
virtual ~IDriver(){};
|
||||||
virtual ~IDriver() {};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get Information struct about this driver
|
* @brief Get Information struct about this driver
|
||||||
*
|
*
|
||||||
* @return driver::info
|
* @return driver::info
|
||||||
*/
|
*/
|
||||||
virtual driver::info getInfo() = 0;
|
virtual driver::info getInfo() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief opens up the device specified
|
* @brief opens up the device specified
|
||||||
*
|
*
|
||||||
* @return true successfully open up device
|
* @return true successfully open up device
|
||||||
* @return false failed to open device
|
* @return false failed to open device
|
||||||
*/
|
*/
|
||||||
virtual bool open() = 0;
|
virtual bool open() = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
/**
|
|
||||||
* @brief close the device
|
* @brief close the device
|
||||||
*
|
*
|
||||||
* @return true successfully closed device
|
* @return true successfully closed device
|
||||||
* @return false failed to close device
|
* @return false failed to close device
|
||||||
*/
|
*/
|
||||||
virtual bool close() = 0;
|
virtual bool close() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Send a command to device
|
* @brief Send a command to device
|
||||||
*
|
*
|
||||||
* @return true successfully sent command to device
|
* @return true successfully sent command to device
|
||||||
* @return false error sending command
|
* @return false error sending command
|
||||||
*/
|
*/
|
||||||
virtual bool command() = 0;
|
virtual bool command() = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::driver
|
@@ -9,19 +9,18 @@
|
|||||||
|
|
||||||
namespace ptprnt::printer {
|
namespace ptprnt::printer {
|
||||||
|
|
||||||
class IPrinter
|
class IPrinter {
|
||||||
{
|
public:
|
||||||
public:
|
virtual ~IPrinter(){};
|
||||||
virtual ~IPrinter() {};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get Information struct about the printer
|
* @brief Get Information struct about the printer
|
||||||
*
|
*
|
||||||
* @return driver::info
|
* @return driver::info
|
||||||
*/
|
*/
|
||||||
virtual printer::info getInfo() = 0;
|
virtual printer::info getInfo() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Prints text immediatly
|
* @brief Prints text immediatly
|
||||||
*
|
*
|
||||||
* @param text Text to print
|
* @param text Text to print
|
||||||
@@ -29,16 +28,16 @@ public:
|
|||||||
* @return true Printing succeeded
|
* @return true Printing succeeded
|
||||||
* @return false Printing failed
|
* @return false Printing failed
|
||||||
*/
|
*/
|
||||||
virtual bool printText(std::string_view text, uint32_t fontSize) = 0;
|
virtual bool printText(std::string_view text, uint32_t fontSize) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Prints supplied bitmap immediatly
|
* @brief Prints supplied bitmap immediatly
|
||||||
*
|
*
|
||||||
* @param bm Bitmap to print
|
* @param bm Bitmap to print
|
||||||
* @return true Printing succeeded
|
* @return true Printing succeeded
|
||||||
* @return false Printing failed
|
* @return false Printing failed
|
||||||
*/
|
*/
|
||||||
virtual bool printBitmap(std::shared_ptr<bitmap::Bitmap> bm) = 0;
|
virtual bool printBitmap(std::shared_ptr<bitmap::Bitmap> bm) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::printer
|
@@ -1,21 +1,22 @@
|
|||||||
|
|
||||||
#include "IDriver.hpp"
|
#include "IDriver.hpp"
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
|
#include <libusb-1.0/libusb.h>
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
namespace ptprnt::driver {
|
namespace ptprnt::driver {
|
||||||
|
|
||||||
class P700Driver : public IDriver
|
class P700Driver : public IDriver {
|
||||||
{
|
public:
|
||||||
public:
|
P700Driver(uint16_t UsbDevVendor = 0x04f9, uint16_t UsbDevId = 0x2061);
|
||||||
P700Driver(uint16_t UsbDevVendor = 0x04f9, uint16_t UsbDevId = 0x2061);
|
~P700Driver() override;
|
||||||
~P700Driver() override;
|
|
||||||
|
|
||||||
driver::info getInfo() override;
|
driver::info getInfo() override;
|
||||||
bool open() override;
|
bool open() override;
|
||||||
bool close() override;
|
bool close() override;
|
||||||
bool command() override;
|
bool command() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::driver
|
@@ -8,19 +8,18 @@
|
|||||||
|
|
||||||
namespace ptprnt::printer {
|
namespace ptprnt::printer {
|
||||||
|
|
||||||
class P700Printer : public IPrinter
|
class P700Printer : public IPrinter {
|
||||||
{
|
public:
|
||||||
public:
|
P700Printer(std::unique_ptr<driver::P700Driver> driver);
|
||||||
P700Printer(std::unique_ptr<driver::P700Driver> driver);
|
~P700Printer() override;
|
||||||
~P700Printer() override;
|
|
||||||
|
|
||||||
printer::info getInfo() override;
|
printer::info getInfo() override;
|
||||||
bool printText(std::string_view text, uint32_t fontSize) override;
|
bool printText(std::string_view text, uint32_t fontSize) override;
|
||||||
bool printBitmap(std::shared_ptr<bitmap::Bitmap> bm) override;
|
bool printBitmap(std::shared_ptr<bitmap::Bitmap> bm) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static info mPrinterInfo;
|
static info mPrinterInfo;
|
||||||
std::unique_ptr<driver::P700Driver> mDriver;
|
std::unique_ptr<driver::P700Driver> mDriver;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::printer
|
@@ -5,17 +5,17 @@
|
|||||||
namespace ptprnt::printer {
|
namespace ptprnt::printer {
|
||||||
|
|
||||||
enum class colorMode {
|
enum class colorMode {
|
||||||
monochrome = 0,
|
monochrome = 0,
|
||||||
color = 0,
|
color = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct info {
|
struct info {
|
||||||
std::string name{""};
|
std::string name{""};
|
||||||
std::string revision{""};
|
std::string revision{""};
|
||||||
uint32_t xres = {0};
|
uint32_t xres = {0};
|
||||||
uint32_t yres = {0};
|
uint32_t yres = {0};
|
||||||
colorMode color = {colorMode::monochrome};
|
colorMode color = {colorMode::monochrome};
|
||||||
bool cutter = {false};
|
bool cutter = {false};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::printer
|
21
meson.build
Normal file
21
meson.build
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
project('ptprnt', 'cpp',
|
||||||
|
version: '0.1.0',
|
||||||
|
license: 'GPLv3',
|
||||||
|
default_options : ['c_std=c11', 'cpp_std=c++17']
|
||||||
|
)
|
||||||
|
|
||||||
|
usbdep = dependency('libusb-1.0')
|
||||||
|
|
||||||
|
incdir = include_directories('inc')
|
||||||
|
|
||||||
|
srcs = [
|
||||||
|
'src/main.cpp',
|
||||||
|
'src/P700Driver.cpp',
|
||||||
|
'src/P700Printer.cpp'
|
||||||
|
]
|
||||||
|
|
||||||
|
executable(
|
||||||
|
'ptprnt', srcs,
|
||||||
|
include_directories : incdir,
|
||||||
|
dependencies : usbdep
|
||||||
|
)
|
@@ -1,32 +1,28 @@
|
|||||||
#include "P700Driver.hpp"
|
#include "P700Driver.hpp"
|
||||||
|
|
||||||
#include <stdexcept>
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
namespace ptprnt::driver {
|
namespace ptprnt::driver {
|
||||||
|
|
||||||
P700Driver::P700Driver(uint16_t UsbDevVendor, uint16_t UsbDevId) {
|
P700Driver::P700Driver(uint16_t UsbDevVendor, uint16_t UsbDevId) {}
|
||||||
|
|
||||||
}
|
P700Driver::~P700Driver() {}
|
||||||
|
|
||||||
P700Driver::~P700Driver() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
driver::info P700Driver::getInfo() {
|
driver::info P700Driver::getInfo() {
|
||||||
return driver::info{};
|
return driver::info{};
|
||||||
}
|
}
|
||||||
|
|
||||||
bool P700Driver::open() {
|
bool P700Driver::open() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool P700Driver::close() {
|
bool P700Driver::close() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool P700Driver::command() {
|
bool P700Driver::command() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::driver
|
@@ -1,31 +1,32 @@
|
|||||||
#include "P700Printer.hpp"
|
#include "P700Printer.hpp"
|
||||||
|
|
||||||
#include <stdexcept>
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
namespace ptprnt::printer {
|
namespace ptprnt::printer {
|
||||||
|
|
||||||
P700Printer::P700Printer(std::unique_ptr<driver::P700Driver> driver) {
|
P700Printer::P700Printer(std::unique_ptr<driver::P700Driver> driver) {
|
||||||
if(!driver->open()) {
|
if (!driver->open()) {
|
||||||
throw std::invalid_argument("Could not open driver!");
|
throw std::invalid_argument("Could not open driver!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
P700Printer::~P700Printer() {
|
P700Printer::~P700Printer() {
|
||||||
if(!mDriver->close()) {
|
if (!mDriver->close()) {
|
||||||
std::cerr << "Could not close driver properly!" << std::endl;
|
std::cerr << "Could not close driver properly!" << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printer::info P700Printer::getInfo() {
|
printer::info P700Printer::getInfo() {
|
||||||
return printer::info{};
|
return printer::info{};
|
||||||
}
|
}
|
||||||
|
|
||||||
bool P700Printer::printText(std::string_view text, uint32_t fontSize) {
|
bool P700Printer::printText(std::string_view text, uint32_t fontSize) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool P700Printer::printBitmap(std::shared_ptr<bitmap::Bitmap> bm) {
|
bool P700Printer::printBitmap(std::shared_ptr<bitmap::Bitmap> bm) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace ptprnt::printer
|
14
src/main.cpp
14
src/main.cpp
@@ -4,16 +4,16 @@
|
|||||||
#include "IPrinter.hpp"
|
#include "IPrinter.hpp"
|
||||||
#include "P700Printer.hpp"
|
#include "P700Printer.hpp"
|
||||||
|
|
||||||
|
#include <libusb-1.0/libusb.h>
|
||||||
using namespace ptprnt;
|
using namespace ptprnt;
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
|
||||||
std::cout << "Hello ptprnt!" << std::endl;
|
std::cout << "Hello ptprnt!" << std::endl;
|
||||||
|
libusb_init(NULL);
|
||||||
|
auto driver = std::make_unique<driver::P700Driver>();
|
||||||
|
auto printer = std::make_unique<printer::P700Printer>(std::move(driver));
|
||||||
|
printer::info info = printer->getInfo();
|
||||||
|
|
||||||
auto driver = std::make_unique<driver::P700Driver>();
|
return 0;
|
||||||
auto printer = std::make_unique<printer::P700Printer>(std::move(driver));
|
|
||||||
printer::info info = printer->getInfo();
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user