
#ifndef _textBuffer_h
#define _textBuffer_h

#include "RBPXPLRTERM_config.h"

typedef struct {
  String data;
  byte color;
} BufferEntry;

typedef struct {
  String data;
  int    event;
  int    param;
} QueueEntry;

extern void setupPrintBuffer();
extern int getPrintBufferCount();
extern int getPrintBufferFreeEntries();
extern void dumpPrintBuffer();
extern BufferEntry getBufferEntry();
extern void putBufferEntry(BufferEntry be);

extern void setupEventQueue();
extern int getEventQueueCount();
extern int getEventQueueFreeEntries();
extern void dumpEventQueue();
extern QueueEntry getEventQueueEntry();
extern void putEventQueueEntry(QueueEntry be);
extern void putEventQueueEntry(int event);
extern void putEventQueueEntry(int event, String data = (String) 0, int param = 0);
extern void putEventQueueEntry(int event, int param = 0, String data = (String) 0);
extern void addEventHandler(int event, DFuncIntParStrPtr func, int hparam, String info);
extern void eventLoop(int param);

#endif
