mirror of
https://github.com/felis/USB_Host_Shield_2.0.git
synced 2024-03-22 11:31:26 +01:00
Merge pull request #705 from YuuichiAkagawa/pr_usbh_midi_100
Update MIDI driver v1.0.0
This commit is contained in:
commit
6ab44fafd7
2 changed files with 15 additions and 4 deletions
|
@ -258,10 +258,11 @@ uint8_t USBH_MIDI::Init(uint8_t parent, uint8_t port, bool lowspeed)
|
||||||
if (rcode)
|
if (rcode)
|
||||||
goto FailSetConfDescr;
|
goto FailSetConfDescr;
|
||||||
|
|
||||||
|
bPollEnable = true;
|
||||||
|
|
||||||
if(pFuncOnInit)
|
if(pFuncOnInit)
|
||||||
pFuncOnInit(); // Call the user function
|
pFuncOnInit(); // Call the user function
|
||||||
|
|
||||||
bPollEnable = true;
|
|
||||||
USBTRACE("Init done.\r\n");
|
USBTRACE("Init done.\r\n");
|
||||||
return 0;
|
return 0;
|
||||||
FailGetDevDescr:
|
FailGetDevDescr:
|
||||||
|
@ -275,10 +276,14 @@ FailSetConfDescr:
|
||||||
/* Performs a cleanup after failed Init() attempt */
|
/* Performs a cleanup after failed Init() attempt */
|
||||||
uint8_t USBH_MIDI::Release()
|
uint8_t USBH_MIDI::Release()
|
||||||
{
|
{
|
||||||
|
if(pFuncOnRelease && bPollEnable)
|
||||||
|
pFuncOnRelease(); // Call the user function
|
||||||
|
|
||||||
pUsb->GetAddressPool().FreeAddress(bAddress);
|
pUsb->GetAddressPool().FreeAddress(bAddress);
|
||||||
bAddress = 0;
|
bAddress = 0;
|
||||||
bPollEnable = false;
|
bPollEnable = false;
|
||||||
readPtr = 0;
|
readPtr = 0;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -296,8 +301,9 @@ void USBH_MIDI::setupDeviceSpecific()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// LaunchKey: 0x30-32, 0x35:Mini, 0x7B-0x7D:MK2
|
// LaunchKey: 0x30-32, 0x35:Mini, 0x7B-0x7D:MK2, 0x0102,0x113-0x122:MiniMk3, 0x134-0x137:MK3
|
||||||
if( ( 0x30 <= pid && pid <= 0x32) || pid == 0x35 || ( 0x7B <= pid && pid <= 0x7D) ) {
|
if( (0x30 <= pid && pid <= 0x32) || pid == 0x35 || (0x7B <= pid && pid <= 0x7D)
|
||||||
|
|| pid == 0x102 || (0x113 <= pid && pid <= 0x122) || (0x134 <= pid && pid <= 0x137) ) {
|
||||||
bTransferTypeMask = 2;
|
bTransferTypeMask = 2;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#define _USBH_MIDI_H_
|
#define _USBH_MIDI_H_
|
||||||
#include "Usb.h"
|
#include "Usb.h"
|
||||||
|
|
||||||
#define USBH_MIDI_VERSION 601
|
#define USBH_MIDI_VERSION 10000
|
||||||
#define MIDI_MAX_ENDPOINTS 3 //endpoint 0, bulk_IN(MIDI), bulk_OUT(MIDI)
|
#define MIDI_MAX_ENDPOINTS 3 //endpoint 0, bulk_IN(MIDI), bulk_OUT(MIDI)
|
||||||
#define USB_SUBCLASS_MIDISTREAMING 3
|
#define USB_SUBCLASS_MIDISTREAMING 3
|
||||||
#define MIDI_EVENT_PACKET_SIZE 64
|
#define MIDI_EVENT_PACKET_SIZE 64
|
||||||
|
@ -137,8 +137,13 @@ public:
|
||||||
void attachOnInit(void (*funcOnInit)(void)) {
|
void attachOnInit(void (*funcOnInit)(void)) {
|
||||||
pFuncOnInit = funcOnInit;
|
pFuncOnInit = funcOnInit;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void attachOnRelease(void (*funcOnRelease)(void)) {
|
||||||
|
pFuncOnRelease = funcOnRelease;
|
||||||
|
};
|
||||||
private:
|
private:
|
||||||
void (*pFuncOnInit)(void) = nullptr; // Pointer to function called in onInit()
|
void (*pFuncOnInit)(void) = nullptr; // Pointer to function called in onInit()
|
||||||
|
void (*pFuncOnRelease)(void) = nullptr; // Pointer to function called in onRelease()
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_USBH_MIDI_H_
|
#endif //_USBH_MIDI_H_
|
||||||
|
|
Loading…
Reference in a new issue