From fb4a3278917e16706cbb8793ed8fa6558b2ff780 Mon Sep 17 00:00:00 2001 From: Paul Hollinsky Date: Thu, 20 Sep 2018 13:21:54 -0400 Subject: [PATCH] Allow devices to be selectively included per platform This way a platform does not have to be 100% implemented to be useful --- device/devicefinder.cpp | 48 ++++++++++++++++++++++-------- platform/include/devices.h | 12 ++++++++ platform/linux/include/devices.h | 17 +++++++++++ platform/windows/include/devices.h | 17 +++++++++++ 4 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 platform/include/devices.h create mode 100644 platform/linux/include/devices.h create mode 100644 platform/windows/include/devices.h diff --git a/device/devicefinder.cpp b/device/devicefinder.cpp index ab44a72..e218279 100644 --- a/device/devicefinder.cpp +++ b/device/devicefinder.cpp @@ -1,16 +1,5 @@ #include "device/include/devicefinder.h" -#include "device/neoobd2pro/include/neoobd2pro.h" -#include "device/neovifire/include/neovifire.h" -#include "device/neovifire2/include/neovifire2eth.h" -#include "device/neovifire2/include/neovifire2usb.h" -#include "device/plasion/include/neoviion.h" -#include "device/plasion/include/neoviplasma.h" -#include "device/radgalaxy/include/radgalaxy.h" -#include "device/radstar2/include/radstar2.h" -#include "device/radsupermoon/include/radsupermoon.h" -#include "device/valuecan3/include/valuecan3.h" -#include "device/valuecan4/include/valuecan4.h" -#include "device/vividcan/include/vividcan.h" +#include "platform/include/devices.h" using namespace icsneo; @@ -18,18 +7,53 @@ std::vector> DeviceFinder::FindAll() { std::vector> foundDevices; std::vector>> findResults; + #ifdef __NEOOBD2PRO_H_ findResults.push_back(NeoOBD2PRO::Find()); + #endif + + #ifdef __NEOVIFIRE_H_ findResults.push_back(NeoVIFIRE::Find()); + #endif + + #ifdef __NEOVIFIRE2ETH_H_ findResults.push_back(NeoVIFIRE2ETH::Find()); + #endif + + #ifdef __NEOVIFIRE2USB_H_ findResults.push_back(NeoVIFIRE2USB::Find()); + #endif + + #ifdef __NEOVIION_H_ findResults.push_back(NeoVIION::Find()); + #endif + + #ifdef __NEOVIPLASMA_H_ findResults.push_back(NeoVIPLASMA::Find()); + #endif + + #ifdef __RADGALAXY_H_ findResults.push_back(RADGalaxy::Find()); + #endif + + #ifdef __RADSTAR2_H_ findResults.push_back(RADStar2::Find()); + #endif + + #ifdef __RADSUPERMOON_H_ findResults.push_back(RADSupermoon::Find()); + #endif + + #ifdef __VALUECAN3_H_ findResults.push_back(ValueCAN3::Find()); + #endif + + #ifdef __VALUECAN4_H_ findResults.push_back(ValueCAN4::Find()); + #endif + + #ifdef __VIVIDCAN_H_ findResults.push_back(VividCAN::Find()); + #endif for(auto& results : findResults) { if(results.size()) diff --git a/platform/include/devices.h b/platform/include/devices.h new file mode 100644 index 0000000..839066e --- /dev/null +++ b/platform/include/devices.h @@ -0,0 +1,12 @@ +#ifndef __DEVICES_H_ +#define __DEVICES_H_ + +#if defined _WIN32 +#include "platform/windows/include/devices.h" +#elif defined __linux__ +#include "platform/linux/include/devices.h" +#else +#error "This platform is not supported by the devices driver, please add a definition!" +#endif + +#endif \ No newline at end of file diff --git a/platform/linux/include/devices.h b/platform/linux/include/devices.h new file mode 100644 index 0000000..fd5ebea --- /dev/null +++ b/platform/linux/include/devices.h @@ -0,0 +1,17 @@ +#ifndef __DEVICES_LINUX_H_ +#define __DEVICES_LINUX_H_ + +#include "device/neoobd2pro/include/neoobd2pro.h" +#include "device/neovifire/include/neovifire.h" +//#include "device/neovifire2/include/neovifire2eth.h" Ethernet not yet supported +#include "device/neovifire2/include/neovifire2usb.h" +#include "device/plasion/include/neoviion.h" +#include "device/plasion/include/neoviplasma.h" +//#include "device/radgalaxy/include/radgalaxy.h" Ethernet not yet supported +#include "device/radstar2/include/radstar2.h" +#include "device/radsupermoon/include/radsupermoon.h" +#include "device/valuecan3/include/valuecan3.h" +#include "device/valuecan4/include/valuecan4.h" +#include "device/vividcan/include/vividcan.h" + +#endif \ No newline at end of file diff --git a/platform/windows/include/devices.h b/platform/windows/include/devices.h new file mode 100644 index 0000000..48c8151 --- /dev/null +++ b/platform/windows/include/devices.h @@ -0,0 +1,17 @@ +#ifndef __DEVICES_WINDOWS_H_ +#define __DEVICES_WINDOWS_H_ + +#include "device/neoobd2pro/include/neoobd2pro.h" +#include "device/neovifire/include/neovifire.h" +#include "device/neovifire2/include/neovifire2eth.h" +#include "device/neovifire2/include/neovifire2usb.h" +#include "device/plasion/include/neoviion.h" +#include "device/plasion/include/neoviplasma.h" +#include "device/radgalaxy/include/radgalaxy.h" +#include "device/radstar2/include/radstar2.h" +#include "device/radsupermoon/include/radsupermoon.h" +#include "device/valuecan3/include/valuecan3.h" +#include "device/valuecan4/include/valuecan4.h" +#include "device/vividcan/include/vividcan.h" + +#endif \ No newline at end of file