-/*
+/*
* Copyright 2012 Jun Wako <wakojun@gmail.com>
* This file is based on:
* LUFA-120219/Demos/Device/Lowlevel/KeyboardMouse
#include <LUFA/Version.h>
#include <LUFA/Drivers/USB/USB.h>
#include "host.h"
-#ifdef MIDI_ENABLE
- #include "midi.h"
-#endif
#ifdef __cplusplus
extern "C" {
#endif
uint16_t usage;
} __attribute__ ((packed)) report_extra_t;
-#ifdef MIDI_ENABLE
- #define MIDI_SYSEX_BUFFER 16
- void MIDI_Task(void);
- MidiDevice midi_device;
+#ifdef API_ENABLE
+ #include "api.h"
+#endif
- void sysex_callback(MidiDevice * device, uint16_t start, uint8_t length, uint8_t * data);
- uint32_t decode_uint32_chunk(uint8_t * data);
- uint32_t decode_uint8_chunk(uint8_t * data);
- void encode_uint32_chunk(uint32_t data, uint8_t * pointer);
- void encode_uint8_chunk(uint8_t data, uint8_t * pointer);
- void sysex_buffer_callback(MidiDevice * device, uint8_t length, uint8_t * data);
- void send_unicode_midi(uint32_t unicode);
- void send_bytes_sysex(uint8_t type, uint8_t * bytes, uint8_t length);
+#ifdef API_SYSEX_ENABLE
+ #include "api_sysex.h"
+ // Allocate space for encoding overhead.
+ //The header and terminator are not stored to save a few bytes of precious ram
+ #define MIDI_SYSEX_BUFFER (API_SYSEX_MAX_SIZE + API_SYSEX_MAX_SIZE / 7 + (API_SYSEX_MAX_SIZE % 7 ? 1 : 0))
#endif
// #if LUFA_VERSION_INTEGER < 0x120730