From b3191b3ad121f7c289bd497cc6e4741e2b7bacf7 Mon Sep 17 00:00:00 2001 From: Tom Collins Date: Wed, 24 Jun 2020 18:22:00 -0700 Subject: [PATCH] Revert "add debian control files" This reverts commit 69bd547f0efe4c2c289feb5c3a730789fe1a880c. --- debian/changelog | 5 - debian/compat | 1 - debian/control | 21 - debian/copyright | 13 - debian/docs | 0 debian/files | 2 - debian/libpinproc-dev.debhelper.log | 24 - debian/libpinproc-dev.dirs | 2 - debian/libpinproc-dev.install | 3 - debian/libpinproc-dev.substvars | 1 - debian/libpinproc-dev/DEBIAN/control | 12 - debian/libpinproc-dev/DEBIAN/md5sums | 4 - .../usr/include/p-roc/pinproc.h | 598 ------------------ debian/libpinproc-dev/usr/lib/libpinproc.so | 1 - .../usr/lib/pkgconfig/pinproc.pc | 11 - .../doc/libpinproc-dev/changelog.Debian.gz | Bin 140 -> 0 bytes .../usr/share/doc/libpinproc-dev/copyright | 13 - debian/libpinproc.debhelper.log | 24 - debian/libpinproc.install | 1 - debian/libpinproc.postinst.debhelper | 5 - debian/libpinproc.postrm.debhelper | 5 - debian/libpinproc.substvars | 2 - debian/libpinproc/DEBIAN/control | 11 - debian/libpinproc/DEBIAN/md5sums | 3 - debian/libpinproc/DEBIAN/postinst | 7 - debian/libpinproc/DEBIAN/postrm | 7 - debian/libpinproc/DEBIAN/shlibs | 1 - debian/libpinproc/usr/lib/libpinproc.so.2.0 | Bin 51360 -> 0 bytes .../share/doc/libpinproc/changelog.Debian.gz | Bin 140 -> 0 bytes .../usr/share/doc/libpinproc/copyright | 13 - debian/libpinproc1.dirs | 1 - debian/rules | 27 - debian/source/format | 1 - 33 files changed, 819 deletions(-) delete mode 100644 debian/changelog delete mode 100644 debian/compat delete mode 100644 debian/control delete mode 100644 debian/copyright delete mode 100644 debian/docs delete mode 100644 debian/files delete mode 100644 debian/libpinproc-dev.debhelper.log delete mode 100644 debian/libpinproc-dev.dirs delete mode 100644 debian/libpinproc-dev.install delete mode 100644 debian/libpinproc-dev.substvars delete mode 100644 debian/libpinproc-dev/DEBIAN/control delete mode 100644 debian/libpinproc-dev/DEBIAN/md5sums delete mode 100644 debian/libpinproc-dev/usr/include/p-roc/pinproc.h delete mode 120000 debian/libpinproc-dev/usr/lib/libpinproc.so delete mode 100644 debian/libpinproc-dev/usr/lib/pkgconfig/pinproc.pc delete mode 100644 debian/libpinproc-dev/usr/share/doc/libpinproc-dev/changelog.Debian.gz delete mode 100644 debian/libpinproc-dev/usr/share/doc/libpinproc-dev/copyright delete mode 100644 debian/libpinproc.debhelper.log delete mode 100644 debian/libpinproc.install delete mode 100644 debian/libpinproc.postinst.debhelper delete mode 100644 debian/libpinproc.postrm.debhelper delete mode 100644 debian/libpinproc.substvars delete mode 100644 debian/libpinproc/DEBIAN/control delete mode 100644 debian/libpinproc/DEBIAN/md5sums delete mode 100755 debian/libpinproc/DEBIAN/postinst delete mode 100755 debian/libpinproc/DEBIAN/postrm delete mode 100644 debian/libpinproc/DEBIAN/shlibs delete mode 100644 debian/libpinproc/usr/lib/libpinproc.so.2.0 delete mode 100644 debian/libpinproc/usr/share/doc/libpinproc/changelog.Debian.gz delete mode 100644 debian/libpinproc/usr/share/doc/libpinproc/copyright delete mode 100644 debian/libpinproc1.dirs delete mode 100755 debian/rules delete mode 100644 debian/source/format diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 2db71e6..0000000 --- a/debian/changelog +++ /dev/null @@ -1,5 +0,0 @@ -libpinproc (0.1.0-1) trusty; urgency=low - - * Initial release - - -- Jan Kantert Wed, 10 Feb 2016 20:21:33 +0100 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index ec63514..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/debian/control b/debian/control deleted file mode 100644 index 5217999..0000000 --- a/debian/control +++ /dev/null @@ -1,21 +0,0 @@ -Source: libpinproc -Priority: optional -Maintainer: Jan Kantert -Build-Depends: debhelper (>= 8.0.0) -Standards-Version: 3.9.4 -Section: libs -Homepage: https://github.com/jabdoa2/libpinproc - -Package: libpinproc-dev -Section: libdevel -Architecture: any -Depends: libpinproc (= ${binary:Version}) -Description: Devel header for libpinproc - Lib to speak to the P-Roc and P3-Roc hardware from Multimorphic - -Package: libpinproc -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: libpinproc - Lib to speak to the P-Roc and P3-Roc hardware from Multimorphic diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index 91432fa..0000000 --- a/debian/copyright +++ /dev/null @@ -1,13 +0,0 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: libpinproc -Source: README.markdown - -Files: * -Copyright: 2009 Gerry Stellenberg - 2009 Adam Preble -License: AS IS - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/debian/docs b/debian/docs deleted file mode 100644 index e69de29..0000000 diff --git a/debian/files b/debian/files deleted file mode 100644 index 1782cbb..0000000 --- a/debian/files +++ /dev/null @@ -1,2 +0,0 @@ -libpinproc-dev_0.1.0-1_amd64.deb libdevel optional -libpinproc_0.1.0-1_amd64.deb libs optional diff --git a/debian/libpinproc-dev.debhelper.log b/debian/libpinproc-dev.debhelper.log deleted file mode 100644 index 3dd8e80..0000000 --- a/debian/libpinproc-dev.debhelper.log +++ /dev/null @@ -1,24 +0,0 @@ -dh_auto_configure -dh_auto_build -dh_auto_test -dh_prep -dh_installdirs -override_dh_auto_install dh_auto_install -dh_auto_install -dh_install -dh_installdocs -dh_installchangelogs -dh_perl -dh_link -dh_compress -dh_fixperms -dh_strip -dh_makeshlibs -override_dh_shlibdeps dh_shlibdeps -dh_shlibdeps -dh_installdeb -dh_gencontrol -dh_md5sums -dh_builddeb -dh_builddeb -dh_builddeb diff --git a/debian/libpinproc-dev.dirs b/debian/libpinproc-dev.dirs deleted file mode 100644 index 4418816..0000000 --- a/debian/libpinproc-dev.dirs +++ /dev/null @@ -1,2 +0,0 @@ -usr/lib -usr/include diff --git a/debian/libpinproc-dev.install b/debian/libpinproc-dev.install deleted file mode 100644 index c4e0b93..0000000 --- a/debian/libpinproc-dev.install +++ /dev/null @@ -1,3 +0,0 @@ -usr/include/* -usr/lib/pkgconfig/* -usr/lib/lib*.so diff --git a/debian/libpinproc-dev.substvars b/debian/libpinproc-dev.substvars deleted file mode 100644 index abd3ebe..0000000 --- a/debian/libpinproc-dev.substvars +++ /dev/null @@ -1 +0,0 @@ -misc:Depends= diff --git a/debian/libpinproc-dev/DEBIAN/control b/debian/libpinproc-dev/DEBIAN/control deleted file mode 100644 index f427b95..0000000 --- a/debian/libpinproc-dev/DEBIAN/control +++ /dev/null @@ -1,12 +0,0 @@ -Package: libpinproc-dev -Source: libpinproc -Version: 0.1.0-1 -Architecture: amd64 -Maintainer: Jan Kantert -Installed-Size: 68 -Depends: libpinproc (= 0.1.0-1) -Section: libdevel -Priority: optional -Homepage: https://github.com/jabdoa2/libpinproc -Description: Devel header for libpinproc - Lib to speak to the P-Roc and P3-Roc hardware from Multimorphic diff --git a/debian/libpinproc-dev/DEBIAN/md5sums b/debian/libpinproc-dev/DEBIAN/md5sums deleted file mode 100644 index 1135cfb..0000000 --- a/debian/libpinproc-dev/DEBIAN/md5sums +++ /dev/null @@ -1,4 +0,0 @@ -675f72525b8aa87966c0b35e27cbf2d0 usr/include/p-roc/pinproc.h -d291de7e93c0d47be0f40e87c7dd93e8 usr/lib/pkgconfig/pinproc.pc -74322abf217a8f4e1d6f50d89a8a009c usr/share/doc/libpinproc-dev/changelog.Debian.gz -9b8881ce99456b7e1d090ab95820ff1f usr/share/doc/libpinproc-dev/copyright diff --git a/debian/libpinproc-dev/usr/include/p-roc/pinproc.h b/debian/libpinproc-dev/usr/include/p-roc/pinproc.h deleted file mode 100644 index 521334f..0000000 --- a/debian/libpinproc-dev/usr/include/p-roc/pinproc.h +++ /dev/null @@ -1,598 +0,0 @@ -/* - * The MIT License - * Copyright (c) 2009 Gerry Stellenberg, Adam Preble - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ -/** @file pinproc.h - * @brief libpinproc, P-ROC Layer 1 API (Preliminary) - * - */ -#ifndef PINPROC_PINPROC_H -#define PINPROC_PINPROC_H -#if !defined(__GNUC__) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4) // GCC supports "pragma once" correctly since 3.4 -#pragma once -#endif - -/* - * 3rd party "stdint.h" replacement available for Visual C++ before version 2010. - * http://en.wikipedia.org/wiki/Stdint.h#External_links - * -> http://msinttypes.googlecode.com/svn/trunk/stdint.h - * Place inside the major include dir (e.g. %ProgramFiles%\Microsoft Visual Studio\VC98\INCLUDE) - */ -#include - -/** @cond */ -// The following ifdef block is the standard way of creating macros which make exporting -// from a DLL simpler. All files within this DLL are compiled with the pinproc_EXPORTS -// symbol defined on the command line. This symbol should not be defined on any project -// that uses this DLL. This way any other project whose source files include this file see -// PINPROC_API functions as being imported from a DLL, whereas this DLL sees symbols -// defined with this macro as being exported. -#undef PINPROC_API - -#ifdef PINPROC_DLL // Using or Building PinPROC DLL (definition defined manually) - #ifdef pinproc_EXPORTS // Building PinPROC DLL (definition created by CMake or defined manually) - #define PINPROC_API __declspec(dllexport) - #else - #define PINPROC_API __declspec(dllimport) - #endif -#endif -// fallback for non-DLL usage and builds -#ifndef PINPROC_API - #define PINPROC_API -#endif - -#if defined(__cplusplus) - #define PINPROC_EXTERN_C_BEGIN extern "C" { - #define PINPROC_EXTERN_C_END } -#else - #define PINPROC_EXTERN_C_BEGIN - #define PINPROC_EXTERN_C_END -#endif - -PINPROC_EXTERN_C_BEGIN -/** @endcond */ - -// Types - -typedef int32_t bool_t; // FIXME: This needs better platform independence. - -typedef int32_t PRResult; /**< See: #kPRSuccess and #kPRFailure. */ -#define kPRSuccess (1) /**< Success value for #PRResult. */ -#define kPRFailure (0) /**< Failure value for #PRResult. */ - -typedef void * PRHandle; /**< Opaque type used to reference an individual P-ROC device. Created with PRCreate() and destroyed with PRDelete(). This value is used as the first parameter to all P-ROC API function calls. */ -#define kPRHandleInvalid (0) /**< Value returned by PRCreate() on failure. Indicates an invalid #PRHandle. */ - -typedef enum PRLogLevel { - kPRLogVerbose, - kPRLogInfo, - kPRLogWarning, - kPRLogError -} PRLogLevel; - -typedef void (*PRLogCallback)(PRLogLevel level, const char *text); /**< Function pointer type for a custom logging callback. See: PRLogSetCallback(). */ -PINPROC_API void PRLogSetCallback(PRLogCallback callback); /**< Replaces the default logging handler with the given callback function. */ - -PINPROC_API void PRLogSetLevel(PRLogLevel level); - -PINPROC_API const char *PRGetLastErrorText(); - -/** - * @defgroup device Device Creation & Deletion - * @{ - */ - -typedef enum PRMachineType { - kPRMachineInvalid = 0, - kPRMachineCustom = 1, - kPRMachineWPCAlphanumeric = 2, - kPRMachineWPC = 3, - kPRMachineWPC95 = 4, - kPRMachineSternWhitestar = 5, - kPRMachineSternSAM = 6, - kPRMachinePDB = 7, -} PRMachineType; - -// PRHandle Creation and Deletion - -PINPROC_API PRHandle PRCreate(PRMachineType machineType); /**< Create a new P-ROC device handle. Only one handle per device may be created. This handle must be destroyed with PRDelete() when it is no longer needed. Returns #kPRHandleInvalid if an error occurred. */ -PINPROC_API void PRDelete(PRHandle handle); /**< Destroys an existing P-ROC device handle. */ - -#define kPRResetFlagDefault (0) /**< Only resets state in memory and does not write changes to the device. */ -#define kPRResetFlagUpdateDevice (1) /**< Instructs PRReset() to update the device once it has reset the configuration to its defaults. */ - -/** - * @brief Resets internally maintained driver and switch rule structures. - * @param resetFlags Specify #kPRResetFlagDefault to only reset the configuration in host memory. #kPRResetFlagUpdateDevice will write the default configuration to the device, effectively disabling all drivers and switch rules. - */ -PINPROC_API PRResult PRReset(PRHandle handle, uint32_t resetFlags); - -/** @} */ // End of Device Creation & Deletion - -// I/O - -/** Flush all pending write data out to the P-ROC. */ -PINPROC_API PRResult PRFlushWriteData(PRHandle handle); - -/** Write data out to the P-ROC immediately (does not require a call to PRFlushWriteData). */ -PINPROC_API PRResult PRWriteData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer); - -/** Read data from the P-ROC. */ -PINPROC_API PRResult PRReadData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer); - -// Manager -/** @defgroup Manager - * @{ - */ - -typedef struct PRManagerConfig { - bool_t reuse_dmd_data_for_aux; - bool_t invert_dipswitch_1; -} PRManagerConfig; - -/** Update Manager configuration */ -PINPROC_API PRResult PRManagerUpdateConfig(PRHandle handle, PRManagerConfig *managerConfig); - -// Drivers -/** @defgroup drivers Driver Manipulation - * @{ - */ - -#define kPRDriverGroupsMax (26) /**< Number of available driver groups. */ -#define kPRDriverCount (256) /**< Total number of drivers */ - -#define kPRDriverAuxCmdOutput (2) -#define kPRDriverAuxCmdDelay (1) -#define kPRDriverAuxCmdJump (0) - -typedef struct PRDriverGlobalConfig { - bool_t enableOutputs; // Formerly enable_direct_outputs - bool_t globalPolarity; - bool_t useClear; - bool_t strobeStartSelect; - uint8_t startStrobeTime; - uint8_t matrixRowEnableIndex1; - uint8_t matrixRowEnableIndex0; - bool_t activeLowMatrixRows; - bool_t encodeEnables; - bool_t tickleSternWatchdog; - bool_t watchdogExpired; - bool_t watchdogEnable; - uint16_t watchdogResetTime; -} PRDriverGlobalConfig; - -typedef struct PRDriverGroupConfig { - uint8_t groupNum; - uint16_t slowTime; - uint8_t enableIndex; - uint8_t rowActivateIndex; - uint8_t rowEnableSelect; - bool_t matrixed; - bool_t polarity; - bool_t active; - bool_t disableStrobeAfter; -} PRDriverGroupConfig; - -typedef struct PRDriverState { - uint16_t driverNum; - uint8_t outputDriveTime; - bool_t polarity; - bool_t state; - bool_t waitForFirstTimeSlot; - uint32_t timeslots; - uint8_t patterOnTime; - uint8_t patterOffTime; - bool_t patterEnable; - bool_t futureEnable; -} PRDriverState; - -typedef struct PRDriverAuxCommand { - bool_t active; - bool_t muxEnables; - uint8_t command; - uint8_t enables; - uint8_t extraData; - uint8_t data; - uint16_t delayTime; - uint8_t jumpAddr; -} PRDriverAuxCommand; - -/** Update registers for the global driver configuration. */ -PINPROC_API PRResult PRDriverUpdateGlobalConfig(PRHandle handle, PRDriverGlobalConfig *driverGlobalConfig); - -PINPROC_API PRResult PRDriverGetGroupConfig(PRHandle handle, uint8_t groupNum, PRDriverGroupConfig *driverGroupConfig); -/** Update registers for the given driver group configuration. */ -PINPROC_API PRResult PRDriverUpdateGroupConfig(PRHandle handle, PRDriverGroupConfig *driverGroupConfig); - -PINPROC_API PRResult PRDriverGetState(PRHandle handle, uint8_t driverNum, PRDriverState *driverState); -/** - * @brief Sets the state of the given driver (lamp or coil). - */ -PINPROC_API PRResult PRDriverUpdateState(PRHandle handle, PRDriverState *driverState); -/** - * @brief Loads the driver defaults for the given machine type. - * - * PRReset() calls this function internally; this function is useful for basing custom driver settings off of the defaults for a particular machine. - * @note This function does not update the P-ROC hardware, only the internal data structures. Use PRDriverGetGlobalConfig() and PRDriverGetGroupConfig() to retrieve the settings. - */ -PINPROC_API PRResult PRDriverLoadMachineTypeDefaults(PRHandle handle, PRMachineType machineType); - -// Driver Group Helper functions: - -/** - * Disables (turns off) the given driver group. - * This function is provided for convenience. See PRDriverGroupDisable() for a full description. - */ -PINPROC_API PRResult PRDriverGroupDisable(PRHandle handle, uint8_t groupNum); -// Driver Helper functions: - -/** - * Disables (turns off) the given driver. - * This function is provided for convenience. See PRDriverStateDisable() for a full description. - */ -PINPROC_API PRResult PRDriverDisable(PRHandle handle, uint8_t driverNum); -/** - * Pulses the given driver for a number of milliseconds. - * This function is provided for convenience. See PRDriverStatePulse() for a full description. - */ -PINPROC_API PRResult PRDriverPulse(PRHandle handle, uint8_t driverNum, uint8_t milliseconds); -/** - * Pulses the given driver for a number of milliseconds when the hardware reaches a specific timestamp. - * This function is provided for convenience. See PRDriverStatePulse() for a full description. - */ -PINPROC_API PRResult PRDriverFuturePulse(PRHandle handle, uint8_t driverNum, uint8_t milliseconds, uint32_t futureTime); -/** - * Assigns a repeating schedule to the given driver. - * This function is provided for convenience. See PRDriverStateSchedule() for a full description. - */ -PINPROC_API PRResult PRDriverSchedule(PRHandle handle, uint8_t driverNum, uint32_t schedule, uint8_t cycleSeconds, bool_t now); -/** - * Assigns a pitter-patter schedule (repeating on/off) to the given driver. - * This function is provided for convenience. See PRDriverStatePatter() for a full description. - */ -PINPROC_API PRResult PRDriverPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime, bool_t now); -/** - * Assigns a pitter-patter schedule (repeating on/off) to the given driver on for the given duration. - * This function is provided for convenience. See PRDriverStatePulsedPatter() for a full description. - */ -PINPROC_API PRResult PRDriverPulsedPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime, bool_t now); -/** - * Prepares an Aux Command to drive the Aux bus. - * This function is provided for convenience. - */ -PINPROC_API void PRDriverAuxPrepareOutput(PRDriverAuxCommand *auxCommand, uint8_t data, uint8_t extraData, uint8_t enables, bool_t muxEnables, uint16_t delayTime); -/** - * Prepares an Aux Command to delay the Aux logic. - * This function is provided for convenience. - */ -PINPROC_API void PRDriverAuxPrepareDelay(PRDriverAuxCommand *auxCommand, uint16_t delayTime); -/** - * Prepares an Aux Command to have the Aux memory pointer jump to a new address. - * This function is provided for convenience. - */ -PINPROC_API void PRDriverAuxPrepareJump(PRDriverAuxCommand *auxCommand, uint8_t jumpAddr); -/** - * Prepares a disabled Aux Command. - * This function is provided for convenience. - */ -PINPROC_API void PRDriverAuxPrepareDisable(PRDriverAuxCommand *auxCommand); - -/** Tickle the watchdog timer. */ -PINPROC_API PRResult PRDriverWatchdogTickle(PRHandle handle); - -/** - * Changes the given #PRDriverGroupConfig to reflect a disabled group. - * @note The driver group config structure must be applied using PRDriverUpdateGroupConfig() to have any effect. - */ -PINPROC_API void PRDriverGroupStateDisable(PRDriverGroupConfig *driverGroup); -/** - * Changes the given #PRDriverState to reflect a disabled state. - * @note The driver state structure must be applied using PRDriverUpdateState() or linked to a switch rule using PRSwitchUpdateRule() to have any effect. - */ -PINPROC_API void PRDriverStateDisable(PRDriverState *driverState); -/** - * Changes the given #PRDriverState to reflect a pulse state. - * @param milliseconds Number of milliseconds to pulse the driver for. - * @note The driver state structure must be applied using PRDriverUpdateState() or linked to a switch rule using PRSwitchUpdateRule() to have any effect. - */ -PINPROC_API void PRDriverStatePulse(PRDriverState *driverState, uint8_t milliseconds); -/** - * Changes the given #PRDriverState to reflect a future scheduled pulse state. - * @param milliseconds Number of milliseconds to pulse the driver for. - * @param futureTime Value indicating at which HW timestamp the pulse should occur. Currently only the low 10-bits are used. - * @note The driver state structure must be applied using PRDriverUpdateState() or linked to a switch rule using PRSwitchUpdateRule() to have any effect. - */ -PINPROC_API void PRDriverStateFuturePulse(PRDriverState *driverState, uint8_t milliseconds, uint32_t futureTime); -/** - * Changes the given #PRDriverState to reflect a scheduled state. - * Assigns a repeating schedule to the given driver. - * @note The driver state structure must be applied using PRDriverUpdateState() or linked to a switch rule using PRSwitchUpdateRule() to have any effect. - */ -PINPROC_API void PRDriverStateSchedule(PRDriverState *driverState, uint32_t schedule, uint8_t cycleSeconds, bool_t now); -/** - * @brief Changes the given #PRDriverState to reflect a pitter-patter schedule state. - * Assigns a pitter-patter schedule (repeating on/off) to the given driver. - * @note The driver state structure must be applied using PRDriverUpdateState() or linked to a switch rule using PRSwitchUpdateRule() to have any effect. - * - * Use originalOnTime to pulse the driver for a number of milliseconds before the pitter-patter schedule begins. - */ -PINPROC_API void PRDriverStatePatter(PRDriverState *driverState, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime, bool_t now); - -/** - * @brief Changes the given #PRDriverState to reflect a pitter-patter schedule state. - * Just like the regular Patter above, but PulsePatter only drives the patter - * scheduled for the given number of milliseconds before disabling the driver. - */ -PINPROC_API void PRDriverStatePulsedPatter(PRDriverState *driverState, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t patterTime, bool_t now); - -/** - * Write Aux Port commands into the Aux Port command memory. - */ - -PINPROC_API PRResult PRDriverAuxSendCommands(PRHandle handle, PRDriverAuxCommand * commands, uint8_t numCommands, uint8_t startingAddr); - -/** - * @brief Converts a coil, lamp, switch, or GI string into a P-ROC driver number. - * The following formats are accepted: Cxx (coil), Lxx (lamp), Sxx (matrix switch), SFx (flipper grounded switch), or SDx (dedicated grounded switch). - * If the string does not match this format it will be converted into an integer using atoi(). - */ -PINPROC_API uint16_t PRDecode(PRMachineType machineType, const char *str); - -/** @} */ // End of Drivers - -// Switches - -/** @defgroup switches Switches and Events - * @{ - */ - -// Events -// Closed == 0, Open == 1 -typedef enum PREventType { - kPREventTypeInvalid = 0, - kPREventTypeSwitchClosedDebounced = 1, /**< The switch has gone from open to closed and the signal has been debounced. */ - kPREventTypeSwitchOpenDebounced = 2, /**< The switch has gone from closed to open and the signal has been debounced. */ - kPREventTypeSwitchClosedNondebounced = 3, /**< The switch has gone from open to closed and the signal has not been debounced. */ - kPREventTypeSwitchOpenNondebounced = 4, /**< The switch has gone from closed to open and the signal has not been debounced. */ - kPREventTypeDMDFrameDisplayed = 5, /**< A DMD frame has been displayed. */ - kPREventTypeBurstSwitchOpen = 6, /**< A burst switch has gone from closed to open. */ - kPREventTypeBurstSwitchClosed = 7, /**< A burst switch has gone from open to closed. */ - kPREventTypeAccelerometerX = 8, /**< New value from the accelerometer - X plane. */ - kPREventTypeAccelerometerY = 9, /**< New value from the accelerometer - Y plane. */ - kPREventTypeAccelerometerZ = 10, /**< New value from the accelerometer - Z plane. */ - kPREventTypeAccelerometerIRQ = 11, /**< New interrupt from the accelerometer */ - kPREventTypetLast = kPREventTypeSwitchOpenNondebounced -} PREventType; - -typedef struct PREvent { - PREventType type; /**< The type of event that has occurred. Usually a switch event at this point. */ - uint32_t value; /**< For switch events, the switch number that has changed. For DMD events, the frame buffer that was just displayed. */ - uint32_t time; /**< Time (in milliseconds) that this event occurred. */ -} PREvent; - -/** Get all of the available events that have been received. - * \return Number of events returned; -1 if an error occurred. - */ -PINPROC_API int PRGetEvents(PRHandle handle, PREvent *eventsOut, int maxEvents); - - -#define kPRSwitchPhysicalFirst (0) /**< Switch number of the first physical switch. */ -#define kPRSwitchPhysicalLast (255) /**< Switch number of the last physical switch. */ -#define kPRSwitchNeverDebounceFirst (192) /**< Switch number of the first switch that doesn't need to debounced. */ -#define kPRSwitchNeverDebounceLast (255) /**< Switch number of the last switch that doesn't need to be debounce. */ -#define kPRSwitchCount (256) -#define kPRSwitchRulesCount (kPRSwitchCount << 2) /**< Total number of available switch rules. */ - -typedef struct PRSwitchConfig { - bool_t clear; // Drive the clear output - bool_t hostEventsEnable; // Drive the clear output - bool_t use_column_9; // Use switch matrix column 9 - bool_t use_column_8; // Use switch matrix column 8 - uint8_t directMatrixScanLoopTime; // milliseconds - uint8_t pulsesBeforeCheckingRX; - uint8_t inactivePulsesAfterBurst; - uint8_t pulsesPerBurst; - uint8_t pulseHalfPeriodTime; // milliseconds -} PRSwitchConfig; - -typedef struct PRSwitchRule { - bool_t reloadActive; /**< If true, any associated driver changes resulting from this rule will only happen at most once every 256ms. */ - bool_t notifyHost; /**< If true this switch change event will provided to the user via PRGetEvents(). */ -} PRSwitchRule; - -/** Update the switch controller configurion registers */ -PINPROC_API PRResult PRSwitchUpdateConfig(PRHandle handle, PRSwitchConfig *switchConfig); - -/** - * @brief Configures the handling of switch rules within P-ROC. - * - * P-ROC's switch rule system allows the user to decide which switch events are returned to software, - * as well as optionally linking one or more driver state changes to rules to create immediate feedback (such as in pop bumpers). - * - * For instance, P-ROC can provide debounced switch events for a flipper button so software can apply lange change behavior. - * This is accomplished by configuring the P-ROC with a switch rule for the flipper button and then receiving the events via the PRGetEvents() call. - * The same switch can also be configured with a non-debounced rule to fire a flipper coil. - * Multiple driver changes can be tied to a single switch state transition to create more complicated effects: a slingshot - * switch that fires the slingshot coil, a flash lamp, and a score event. - * - * P-ROC holds four different switch rules for each switch: closed to open and open to closed, each with a debounced and non-debounced versions: - * - #kPREventTypeSwitchOpenDebounced - * - #kPREventTypeSwitchClosedDebounced - * - #kPREventTypeSwitchOpenNondebounced - * - #kPREventTypeSwitchClosedNondebounced - * - * @section Examples - * - * Configuring a basic switch rule to simply notify software via PRGetEvents() without affecting any coil/lamp drivers: - * @code - * PRSwitchRule rule; - * rule.notifyHost = true; - * PRSwitchUpdateRule(handle, switchNum, kPREventTypeSwitchOpenDebounced, &rule, NULL, 0); - * @endcode - * - * Configuring a pop bumper switch to pulse the coil and a flash lamp for 50ms each: - * @code - * // Configure a switch rule to fire the coil and flash lamp: - * PRSwitchRule rule; - * rule.notifyHost = false; - * PRDriverState drivers[2]; - * PRDriverGetState(handle, drvCoilPopBumper1, &drivers[0]); - * PRDriverGetState(handle, drvFlashLamp1, &drivers[1]); - * PRDriverStatePulse(&drivers[0], 50); - * PRDriverStatePulse(&drivers[1], 50); - * PRSwitchUpdateRule(handle, swPopBumper1, kPREventTypeSwitchClosedNondebounced, - * &rule, drivers, 2); - * // Now configure a switch rule to process scoring in software: - * rule.notifyHost = true; - * PRSwitchUpdateRule(handle, swPopBumper1, kPREventTypeSwitchClosedDebounced, - * &rule, NULL, 0); - * @endcode - * - * @param handle The P-ROC device handle. - * @param switchNum The index of the switch this configuration affects. - * @param eventType The switch rule for the specified switchNum to be configured. - * @param rule A pointer to the #PRSwitchRule structure describing how this state change should be handled. May not be NULL. - * @param linkedDrivers An array of #PRDriverState structures describing the driver state changes to be made when this switch rule is triggered. May be NULL if numDrivers is 0. - * @param numDrivers Number of elements in the linkedDrivers array. May be zero or more. - */ -PINPROC_API PRResult PRSwitchUpdateRule(PRHandle handle, uint8_t switchNum, PREventType eventType, PRSwitchRule *rule, PRDriverState *linkedDrivers, int numDrivers, bool_t drive_outputs_now); - -/** Returns a list of PREventTypes describing the states of the requested number of switches */ -PINPROC_API PRResult PRSwitchGetStates(PRHandle handle, PREventType * switchStates, uint16_t numSwitches); - -/** @} */ // End of Switches & Events - -// DMD - -/** - * @defgroup dmd DMD Control - * @{ - */ -typedef struct PRDMDConfig { - uint8_t numRows; - uint16_t numColumns; - uint8_t numSubFrames; - uint8_t numFrameBuffers; - bool_t autoIncBufferWrPtr; - bool_t enableFrameEvents; - bool_t enable; - uint8_t rclkLowCycles[8]; - uint8_t latchHighCycles[8]; - uint16_t deHighCycles[8]; - uint8_t dotclkHalfPeriod[8]; -} PRDMDConfig; - -/** Sets the configuration registers for the DMD driver. */ -PINPROC_API int32_t PRDMDUpdateConfig(PRHandle handle, PRDMDConfig *dmdConfig); -/** Updates the DMD frame buffer with the given data. */ -PINPROC_API PRResult PRDMDDraw(PRHandle handle, uint8_t * dots); - -/** @} */ // End of DMD - - -// JTAG - -/** - * @defgroup jtag JTAG interface control - * @{ - */ - -typedef struct PRJTAGStatus { - bool_t commandComplete; - bool_t tdi; -} PRJTAGStatus; - -typedef struct PRJTAGOutputs { - bool_t tckMask; - bool_t tmsMask; - bool_t tdoMask; - bool_t tck; - bool_t tms; - bool_t tdo; -} PRJTAGOutputs; - -/** Force JTAG outputs (TCK, TDO, TMS) to specific values. Optionally toggle the clock when driving only TDO and/or TMS.*/ -PINPROC_API PRResult PRJTAGDriveOutputs(PRHandle handle, PRJTAGOutputs * jtagOutputs, bool_t toggleClk); -/** Store data to be shifted out on TDO */ -PINPROC_API PRResult PRJTAGWriteTDOMemory(PRHandle handle, uint16_t tableOffset, uint16_t numWords, uint32_t * tdoData); -/** Shift stored TDO data onto the TDO pin, toggling TCK on every bit. */ -PINPROC_API PRResult PRJTAGShiftTDOData(PRHandle handle, uint16_t numBits, bool_t dataBlockComplete); -/** Get the contents of the TDI memory. */ -PINPROC_API PRResult PRJTAGReadTDIMemory(PRHandle handle, uint16_t tableOffset, uint16_t numWords, uint32_t * tdiData); -/** Read the JTAG status register for the command complete bit and JTAG pin states. */ -PINPROC_API PRResult PRJTAGGetStatus(PRHandle handle, PRJTAGStatus * status); - -/** @} */ // End of JTAG - -// PD-LED - -/** - * @defgroup pdled PD-LED Control - * @{ - */ - - -typedef struct PRLED { - uint8_t boardAddr; - uint8_t LEDIndex; -} PRLED; - -typedef struct PRLEDRGB { - PRLED* pRedLED; - PRLED* pGreenLED; - PRLED* pBlueLED; -} PRLEDRGB; - -/** Sets the color of a given PRLED. */ -PINPROC_API PRResult PRLEDColor(PRHandle handle, PRLED * pLED, uint8_t color); -/** Sets the fade color on a given PRLED. */ -PINPROC_API PRResult PRLEDFadeColor(PRHandle handle, PRLED * pLED, uint8_t fadeColor); -/** Sets the fade color and rate on a given PRLED. Note: The rate will apply to any future PRLEDFadeColor or PRLEDRGBFadeColor calls on the same PD-LED board. */ -PINPROC_API PRResult PRLEDFade(PRHandle handle, PRLED * pLED, uint8_t fadeColor, uint16_t fadeRate); - -/** Sets the fade rate on a given board. Note: The rate will apply to any future PRLEDFadeColor or PRLEDRGBFadeColor calls on the same PD-LED board. */ -PINPROC_API PRResult PRLEDFadeRate(PRHandle handle, uint8_t boardAddr, uint16_t fadeRate); - -/** Sets the color of a given PRLEDRGB. */ -PINPROC_API PRResult PRLEDRGBColor(PRHandle handle, PRLEDRGB * pLED, uint32_t color); -/** Sets the fade color and rate on a given PRLEDRGB. Note: The rate will apply to any future PRLEDFadeColor or PRLEDRGBFadeColor calls on any of the referenced PD-LED boards. */ -PINPROC_API PRResult PRLEDRGBFade(PRHandle handle, PRLEDRGB * pLED, uint32_t fadeColor, uint16_t fadeRate); -/** Sets the fade color on a given PRLEDRGB. */ -PINPROC_API PRResult PRLEDRGBFadeColor(PRHandle handle, PRLEDRGB * pLED, uint32_t fadeColor); - - -/** @} */ // End of PD-LED - - -/** @cond */ -PINPROC_EXTERN_C_END -/** @endcond */ - -/** - * @mainpage libpinproc API Documentation - * - * This is the documentation for libpinproc, the P-ROC Layer 1 API. - */ - -#endif /* PINPROC_PINPROC_H */ diff --git a/debian/libpinproc-dev/usr/lib/libpinproc.so b/debian/libpinproc-dev/usr/lib/libpinproc.so deleted file mode 120000 index 7fcf201..0000000 --- a/debian/libpinproc-dev/usr/lib/libpinproc.so +++ /dev/null @@ -1 +0,0 @@ -libpinproc.so.2.0 \ No newline at end of file diff --git a/debian/libpinproc-dev/usr/lib/pkgconfig/pinproc.pc b/debian/libpinproc-dev/usr/lib/pkgconfig/pinproc.pc deleted file mode 100644 index 6c2eb66..0000000 --- a/debian/libpinproc-dev/usr/lib/pkgconfig/pinproc.pc +++ /dev/null @@ -1,11 +0,0 @@ -prefix=/usr -exec_prefix=/usr -libdir=${prefix}/lib -includedir=${prefix}/include/p-roc - -Name: Pinproc -Description: P-ROC interface library -Version: 2.0 -Requires: -Libs: -L${libdir} -lpinproc -Cflags: -I${includedir} diff --git a/debian/libpinproc-dev/usr/share/doc/libpinproc-dev/changelog.Debian.gz b/debian/libpinproc-dev/usr/share/doc/libpinproc-dev/changelog.Debian.gz deleted file mode 100644 index 412a8d039ca52dfc65b36b163d5aa6189c50d42c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmV;70CWEziwFP!0000210~2g4#F@H1<*dH_$8aIaUxNKMN~+@0jQlYLP-+!C6{L8l$Y+_ALNA@<**09Lq2(BLC7NA?3_USn|ef}0oR utk}Q2m`{41-v6+|dIawL*uW9a+@K`4ovBM#R~6Reh>9OEM<2e20002}f= 2.14), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1) -misc:Depends= diff --git a/debian/libpinproc/DEBIAN/control b/debian/libpinproc/DEBIAN/control deleted file mode 100644 index df8ee8d..0000000 --- a/debian/libpinproc/DEBIAN/control +++ /dev/null @@ -1,11 +0,0 @@ -Package: libpinproc -Version: 0.1.0-1 -Architecture: amd64 -Maintainer: Jan Kantert -Installed-Size: 80 -Depends: libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1) -Section: libs -Priority: optional -Homepage: https://github.com/jabdoa2/libpinproc -Description: libpinproc - Lib to speak to the P-Roc and P3-Roc hardware from Multimorphic diff --git a/debian/libpinproc/DEBIAN/md5sums b/debian/libpinproc/DEBIAN/md5sums deleted file mode 100644 index 06e4041..0000000 --- a/debian/libpinproc/DEBIAN/md5sums +++ /dev/null @@ -1,3 +0,0 @@ -8c3c18eda463e90bb2faffb8c2d1315b usr/lib/libpinproc.so.2.0 -74322abf217a8f4e1d6f50d89a8a009c usr/share/doc/libpinproc/changelog.Debian.gz -9b8881ce99456b7e1d090ab95820ff1f usr/share/doc/libpinproc/copyright diff --git a/debian/libpinproc/DEBIAN/postinst b/debian/libpinproc/DEBIAN/postinst deleted file mode 100755 index 379f1fa..0000000 --- a/debian/libpinproc/DEBIAN/postinst +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -set -e -# Automatically added by dh_makeshlibs -if [ "$1" = "configure" ]; then - ldconfig -fi -# End automatically added section diff --git a/debian/libpinproc/DEBIAN/postrm b/debian/libpinproc/DEBIAN/postrm deleted file mode 100755 index 3e73d38..0000000 --- a/debian/libpinproc/DEBIAN/postrm +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -set -e -# Automatically added by dh_makeshlibs -if [ "$1" = "remove" ]; then - ldconfig -fi -# End automatically added section diff --git a/debian/libpinproc/DEBIAN/shlibs b/debian/libpinproc/DEBIAN/shlibs deleted file mode 100644 index 1f60a0f..0000000 --- a/debian/libpinproc/DEBIAN/shlibs +++ /dev/null @@ -1 +0,0 @@ -libpinproc 2.0 libpinproc diff --git a/debian/libpinproc/usr/lib/libpinproc.so.2.0 b/debian/libpinproc/usr/lib/libpinproc.so.2.0 deleted file mode 100644 index af7d8fbc3d44fb6a523cc37cc4364de5609f467f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51360 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 PA9F_+{38x}d>r}%4I9?O diff --git a/debian/libpinproc/usr/share/doc/libpinproc/changelog.Debian.gz b/debian/libpinproc/usr/share/doc/libpinproc/changelog.Debian.gz deleted file mode 100644 index 412a8d039ca52dfc65b36b163d5aa6189c50d42c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmV;70CWEziwFP!0000210~2g4#F@H1<*dH_$8aIaUxNKMN~+@0jQlYLP-+!C6{L8l$Y+_ALNA@<**09Lq2(BLC7NA?3_USn|ef}0oR utk}Q2m`{41-v6+|dIawL*uW9a+@K`4ovBM#R~6Reh>9OEM<2e20002}f