mouse and cdc fixes

This commit is contained in:
Erik Tylek Kettenburg
2015-01-06 14:27:24 -08:00
parent 56dda1007d
commit a9864c18e8
4 changed files with 26 additions and 30 deletions

View File

@@ -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;
}

View File

@@ -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: