mirror of
https://github.com/digistump/DigistumpArduino.git
synced 2025-09-17 17:32:25 -07:00
mouse and cdc fixes
This commit is contained in:
@@ -42,21 +42,26 @@ void DigiCDCDevice::begin(){
|
||||
usbBegin();
|
||||
|
||||
}
|
||||
size_t DigiCDCDevice::write(uint8_t chr)
|
||||
size_t DigiCDCDevice::write(uint8_t c)
|
||||
{
|
||||
if(RingBuffer_IsFull(&txBuf))
|
||||
{
|
||||
refresh();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
RingBuffer_Insert(&txBuf,chr);
|
||||
RingBuffer_Insert(&txBuf,c);
|
||||
DigiCDCDevice::delay(45); //ouch its slow but it ensures it will work no matter how long of a string is thrown at it
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
int DigiCDCDevice::available()
|
||||
{
|
||||
refresh();
|
||||
return RingBuffer_GetCount(&rxBuf);
|
||||
}
|
||||
|
||||
@@ -64,12 +69,15 @@ int DigiCDCDevice::read()
|
||||
{
|
||||
if(RingBuffer_IsEmpty(&rxBuf))
|
||||
{
|
||||
refresh();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
refresh();
|
||||
return RingBuffer_Remove(&rxBuf);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int DigiCDCDevice::peek()
|
||||
@@ -82,22 +90,21 @@ int DigiCDCDevice::peek()
|
||||
{
|
||||
return RingBuffer_Peek(&rxBuf);
|
||||
}
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
void DigiCDCDevice::task(void)
|
||||
{
|
||||
|
||||
usbPollWrapper();
|
||||
refresh();
|
||||
|
||||
}
|
||||
|
||||
void DigiCDCDevice::refresh(void)
|
||||
{
|
||||
|
||||
_delay_ms(1);
|
||||
usbPollWrapper();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -112,7 +119,7 @@ void DigiCDCDevice::end(void)
|
||||
}
|
||||
|
||||
DigiCDCDevice::operator bool() {
|
||||
usbPollWrapper();
|
||||
refresh();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -47,10 +47,6 @@ class DigiCDCDevice : public Stream {
|
||||
virtual int read(void);
|
||||
virtual void flush(void);
|
||||
virtual size_t write(uint8_t);
|
||||
inline size_t write(unsigned long n) { return write((uint8_t)n); }
|
||||
inline size_t write(long n) { return write((uint8_t)n); }
|
||||
inline size_t write(unsigned int n) { return write((uint8_t)n); }
|
||||
inline size_t write(int n) { return write((uint8_t)n); }
|
||||
using Print::write;
|
||||
operator bool();
|
||||
private:
|
||||
|
Reference in New Issue
Block a user