diff options
Diffstat (limited to 'commandline/library/micronucleus_lib.h')
-rw-r--r-- | commandline/library/micronucleus_lib.h | 75 |
1 files changed, 39 insertions, 36 deletions
diff --git a/commandline/library/micronucleus_lib.h b/commandline/library/micronucleus_lib.h index dcbac83..d022877 100644 --- a/commandline/library/micronucleus_lib.h +++ b/commandline/library/micronucleus_lib.h @@ -2,46 +2,46 @@ #define MICRONUCLEUS_LIB_H /* - Created: September 2012 - by ihsan Kehribar <ihsan@kehribar.me> - - 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: + Created: September 2012 + by ihsan Kehribar <ihsan@kehribar.me> + + 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 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. + 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. */ /******************************************************************************** * Header files ********************************************************************************/ #if defined WIN - #include <lusb0_usb.h> // this is libusb, see http://libusb.sourceforge.net/ + #include <lusb0_usb.h> // this is libusb, see http://libusb.sourceforge.net/ #else - #include <usb.h> // this is libusb, see http://libusb.sourceforge.net/ + #include <usb.h> // this is libusb, see http://libusb.sourceforge.net/ #endif -//#include "opendevice.h" // common code moved to separate module +//#include "opendevice.h" // common code moved to separate module #include <assert.h> /*******************************************************************************/ /******************************************************************************** * USB details ********************************************************************************/ -#define MICRONUCLEUS_VENDOR_ID 0x16D0 -#define MICRONUCLEUS_PRODUCT_ID 0x0753 -#define MICRONUCLEUS_USB_TIMEOUT 0xFFFF +#define MICRONUCLEUS_VENDOR_ID 0x16D0 +#define MICRONUCLEUS_PRODUCT_ID 0x0753 +#define MICRONUCLEUS_USB_TIMEOUT 0xFFFF /*******************************************************************************/ /******************************************************************************** @@ -50,22 +50,24 @@ //typedef usb_dev_handle micronucleus; // representing version number of micronucleus device typedef struct _micronucleus_version { - unsigned char major; - unsigned char minor; + unsigned char major; + unsigned char minor; } micronucleus_version; // handle representing one micronucleus device typedef struct _micronucleus { - usb_dev_handle *device; - // general information about device - micronucleus_version version; - unsigned int flash_size; // programmable size (in bytes) of progmem - unsigned int page_size; // size (in bytes) of page - unsigned int pages; // total number of pages to program - unsigned int write_sleep; // milliseconds - unsigned int erase_sleep; // milliseconds + usb_dev_handle *device; + // general information about device + micronucleus_version version; + unsigned int flash_size; // programmable size (in bytes) of progmem + unsigned int page_size; // size (in bytes) of page + unsigned int pages; // total number of pages to program + unsigned int write_sleep; // milliseconds + unsigned int erase_sleep; // milliseconds } micronucleus; +typedef void (*micronucleus_callback)(float progress); + /*******************************************************************************/ /******************************************************************************** @@ -78,13 +80,14 @@ micronucleus* micronucleus_connect(); /******************************************************************************** * Erase the flash memory ********************************************************************************/ -int micronucleus_eraseFlash(micronucleus* deviceHandle); +int micronucleus_eraseFlash(micronucleus* deviceHandle, micronucleus_callback progress); /*******************************************************************************/ /******************************************************************************** * Write the flash memory ********************************************************************************/ -int micronucleus_writeFlash(micronucleus* deviceHandle, unsigned int program_length, unsigned char* program); +int micronucleus_writeFlash(micronucleus* deviceHandle, unsigned int program_length, + unsigned char* program, micronucleus_callback progress); /*******************************************************************************/ /******************************************************************************** |