machine/usb: change to not send before endpoint initialization

Этот коммит содержится в:
sago35 2023-01-08 11:59:26 +09:00 коммит произвёл Ron Evans
родитель a7ff2731b9
коммит 5f3534fe72
5 изменённых файлов: 33 добавлений и 21 удалений

Просмотреть файл

@ -10,7 +10,8 @@ import (
)
type USBDevice struct {
initcomplete bool
initcomplete bool
InitEndpointComplete bool
}
var (
@ -215,6 +216,7 @@ func handleStandardSetup(setup usb.Setup) bool {
}
usbConfiguration = setup.WValueL
USBDev.InitEndpointComplete = true
SendZlp()
return true

Просмотреть файл

@ -2,6 +2,7 @@ package keyboard
import (
"errors"
"machine"
"machine/usb/hid"
)
@ -91,11 +92,13 @@ func (kb *keyboard) Handler() bool {
}
func (kb *keyboard) tx(b []byte) {
if kb.waitTxc {
kb.buf.Put(b)
} else {
kb.waitTxc = true
hid.SendUSBPacket(b)
if machine.USBDev.InitEndpointComplete {
if kb.waitTxc {
kb.buf.Put(b)
} else {
kb.waitTxc = true
hid.SendUSBPacket(b)
}
}
}

Просмотреть файл

@ -1,6 +1,7 @@
package mouse
import (
"machine"
"machine/usb/hid"
)
@ -55,11 +56,13 @@ func (m *mouse) Handler() bool {
}
func (m *mouse) tx(b []byte) {
if m.waitTxc {
m.buf.Put(b)
} else {
m.waitTxc = true
hid.SendUSBPacket(b)
if machine.USBDev.InitEndpointComplete {
if m.waitTxc {
m.buf.Put(b)
} else {
m.waitTxc = true
hid.SendUSBPacket(b)
}
}
}

Просмотреть файл

@ -76,11 +76,13 @@ func (m *Joystick) rxHandler(b []byte) {
}
func (m *Joystick) tx(b []byte) {
if m.waitTxc {
m.buf.Put(b)
} else {
m.waitTxc = true
m.sendUSBPacket(b)
if machine.USBDev.InitEndpointComplete {
if m.waitTxc {
m.buf.Put(b)
} else {
m.waitTxc = true
m.sendUSBPacket(b)
}
}
}

Просмотреть файл

@ -71,11 +71,13 @@ func (m *midi) Handler() {
}
func (m *midi) tx(b []byte) {
if m.waitTxc {
m.buf.Put(b)
} else {
m.waitTxc = true
m.sendUSBPacket(b)
if machine.USBDev.InitEndpointComplete {
if m.waitTxc {
m.buf.Put(b)
} else {
m.waitTxc = true
m.sendUSBPacket(b)
}
}
}