37#ifdef SHELLMINATOR_ENABLE_WEBSOCKET_MODULE
41void shellminatorWebSocketChannel::select( WebSocketsServer *server_p, int8_t clientID_p ){
44 clientID = clientID_p;
48void shellminatorWebSocketChannel::push( uint8_t data ){
50 buffer[ writePointer ] = data;
52 if( writePointer >= SHELLMINATOR_WEBSOCKET_BUFFER_LEN ){
58void shellminatorWebSocketChannel::push( uint8_t* data,
size_t size ){
62 for( i = 0; i < size; i++ ){
64 buffer[ writePointer ] = data[ i ];
66 if( writePointer >= SHELLMINATOR_WEBSOCKET_BUFFER_LEN ){
74int shellminatorWebSocketChannel::available(){
76 if( writePointer == readPointer ){
80 else if( writePointer > readPointer ){
81 return writePointer - readPointer;
86 return SHELLMINATOR_WEBSOCKET_BUFFER_LEN - readPointer + writePointer;
92int shellminatorWebSocketChannel::read(){
96 if( writePointer == readPointer ){
104 ret = (uint8_t)buffer[ readPointer ];
107 if( readPointer >= SHELLMINATOR_WEBSOCKET_BUFFER_LEN ){
117int shellminatorWebSocketChannel::peek(){
119 if( writePointer == readPointer ){
127 return (uint8_t)buffer[ readPointer ];
133void shellminatorWebSocketChannel::flush(){
139size_t shellminatorWebSocketChannel::write( uint8_t b ){
142 server -> sendTXT( clientID, &b, 1 );
149size_t shellminatorWebSocketChannel::write(
const uint8_t *buffer,
size_t size ){
152 server -> sendTXT( clientID, buffer, size );
161size_t shellminatorWebSocketChannel::print(
char c ){
164 server -> sendTXT( clientID, (uint8_t*)&c, 1 );
171size_t shellminatorWebSocketChannel::print( uint8_t b ){
176 snprintf( outBuff, 10,
"%u", (
int)b );
178 dataSize = strlen( outBuff );
181 server -> sendTXT( clientID, (uint8_t*)outBuff, dataSize );
188size_t shellminatorWebSocketChannel::print(
char *str ){
192 dataSize = strlen( str );
195 server -> sendTXT( clientID, (uint8_t*)str, dataSize );
203size_t shellminatorWebSocketChannel::print(
const char *str ){
207 dataSize = strlen( str );
210 server -> sendTXT( clientID, (uint8_t*)str, dataSize );
217int8_t shellminatorWebSocketChannel::getClientID(){