diff options
Diffstat (limited to 'src/client/keyboardBuffer.c')
| -rw-r--r-- | src/client/keyboardBuffer.c | 105 |
1 files changed, 59 insertions, 46 deletions
diff --git a/src/client/keyboardBuffer.c b/src/client/keyboardBuffer.c index 7dee362..246d262 100644 --- a/src/client/keyboardBuffer.c +++ b/src/client/keyboardBuffer.c @@ -1,64 +1,69 @@ /* * keyboardBuffer.c * - * Created on: 1.8.2008 + * Created on: 1. 8. 2008 * Author: Karel Podvolecky * - * Jednoducha fronta stisknutych klaves. + * Simple front of pressed keys. * */ #include <stdio.h> +#include <stdlib.h> +#include <string.h> #include <assert.h> #include <SDL.h> #include "keyboardBuffer.h" -static keyboardBuffer_t *keyboardBuffer=NULL; +static keyboardBuffer_t *keyboardBuffer = NULL; static SDL_keysym emptyKey; /* - * Inicializuje klavesovy buffer. Parametr udava pocet klaves. + * Key buffer initializes. The parameter sets the number of keys. */ -void initKeyboardBuffer(int size){ - assert(size>0); - assert(keyboardBuffer==NULL); +void initKeyboardBuffer(int size) +{ + assert(size > 0); + assert(keyboardBuffer == NULL); keyboardBuffer = malloc(sizeof(keyboardBuffer_t)); - assert(keyboardBuffer!=NULL); + assert(keyboardBuffer != NULL); memset(keyboardBuffer, 0, sizeof(keyboardBuffer_t)); keyboardBuffer->buff = malloc(size * sizeof(SDL_keysym)); - assert(keyboardBuffer->buff!=NULL); + assert(keyboardBuffer->buff != NULL); memset(keyboardBuffer->buff, 0, size * sizeof(SDL_keysym)); - keyboardBuffer->begin=0; - keyboardBuffer->end=0; - keyboardBuffer->count=0; - keyboardBuffer->size=size; + keyboardBuffer->begin = 0; + keyboardBuffer->end = 0; + keyboardBuffer->count = 0; + keyboardBuffer->size = size; emptyKey.sym = SDLK_UNKNOWN; } /* - * Vyprazdni buffer. + * Empty the buffer */ -void clearKeyboardBuffer(){ - assert(keyboardBuffer!=NULL); +void clearKeyboardBuffer() +{ + assert(keyboardBuffer != NULL); - keyboardBuffer->begin=0; - keyboardBuffer->end=0; - keyboardBuffer->count=0; + keyboardBuffer->begin = 0; + keyboardBuffer->end = 0; + keyboardBuffer->count = 0; memset(keyboardBuffer->buff, 0, keyboardBuffer->size * sizeof(SDL_keysym)); } /* - * Prida klavesu na konec bufferu. Pokud je buffer preplnen, - * vypise chybu na chybovy vystup a klavesu zahodi. + * Adds key to the end of the buffer. If the buffer is overrun, + * an error is printed to stderr and the key is dropped. */ -bool_t pushKeyToKeyboardBuffer(SDL_keysym key){ - assert(keyboardBuffer!=NULL); +bool_t pushKeyToKeyboardBuffer(SDL_keysym key) +{ + assert(keyboardBuffer != NULL); if (keyboardBuffer->count >= keyboardBuffer->size){ fprintf(stderr, _("Keyboard Buffer overrun! Dropping key: %02x\n"), key.sym); @@ -68,8 +73,9 @@ bool_t pushKeyToKeyboardBuffer(SDL_keysym key){ keyboardBuffer->buff[keyboardBuffer->end] = key; keyboardBuffer->end++; - if (keyboardBuffer->end>=keyboardBuffer->size) - keyboardBuffer->end=0; + if (keyboardBuffer->end >= keyboardBuffer->size) { + keyboardBuffer->end = 0; + } keyboardBuffer->count++; @@ -77,11 +83,12 @@ bool_t pushKeyToKeyboardBuffer(SDL_keysym key){ } /* - * Vyjme prvni klavesu z bufferu a vrati ji. Pokud je buffer prazdny, - * vypise chybu na chybovy vystup a vrati SDLK_UNKNOWN + * Takes out first key from the buffer and returns it. If the buffer is empty, + * an error is printed to stderr and SDLK_UNKNOWN is returned. */ -SDL_keysym popKeyFromKeyboardBuffer(){ - assert(keyboardBuffer!=NULL); +SDL_keysym popKeyFromKeyboardBuffer() +{ + assert(keyboardBuffer != NULL); if (keyboardBuffer->count <= 0){ fprintf(stderr, _("Keyboard Buffer underrun!\n")); @@ -89,11 +96,12 @@ SDL_keysym popKeyFromKeyboardBuffer(){ } SDL_keysym key = keyboardBuffer->buff[keyboardBuffer->begin]; - keyboardBuffer->buff[keyboardBuffer->begin]=emptyKey; + keyboardBuffer->buff[keyboardBuffer->begin] = emptyKey; keyboardBuffer->begin++; - if (keyboardBuffer->begin>=keyboardBuffer->size) - keyboardBuffer->begin=0; + if (keyboardBuffer->begin >= keyboardBuffer->size) { + keyboardBuffer->begin = 0; + } keyboardBuffer->count--; @@ -101,38 +109,43 @@ SDL_keysym popKeyFromKeyboardBuffer(){ } /* - * Velikost bufferu. + * The buffer size */ -int getKeyboardBufferSize(){ - assert(keyboardBuffer!=NULL); +int getKeyboardBufferSize() +{ + assert(keyboardBuffer != NULL); return keyboardBuffer->size; } /* - * Pocet klaves v bufferu. + * Number of keys in the buffer */ -int KeyboardBufferCount(){ - assert(keyboardBuffer!=NULL); +int KeyboardBufferCount() +{ + assert(keyboardBuffer != NULL); return keyboardBuffer->count; } -bool_t isAnyKeyInKeyboardBuffer(){ - return KeyboardBufferCount()>0 ? TRUE : FALSE; +bool_t isAnyKeyInKeyboardBuffer() +{ + return KeyboardBufferCount() > 0 ? TRUE : FALSE; } /* - * Uvolni buffer. Pokud neni prazdny, vypise predtim - * info o zaplneni na chybovy vystup. + * Frees the buffer. If it is not empty, information + * about filling is prined to stderr first. */ -void quitKeyboardBuffer(){ - assert(keyboardBuffer!=NULL); +void quitKeyboardBuffer() +{ + assert(keyboardBuffer != NULL); - if (keyboardBuffer->count>0){ + if (keyboardBuffer->count > 0){ fprintf(stderr, _("Keyboard buffer is not empty!\n")); } free(keyboardBuffer->buff); free(keyboardBuffer); - keyboardBuffer=NULL; + keyboardBuffer = NULL; } + |