diff options
| author | Matthias (think) <matthias@mpb.li> | 2012-07-11 11:49:12 +0200 | 
|---|---|---|
| committer | Matthias (think) <matthias@mpb.li> | 2012-07-11 11:49:12 +0200 | 
| commit | bbab73a63b8c7b50e8a8cb228999d45024fad984 (patch) | |
| tree | 81a822aa9bd33cae8a5fb8ade4faa83b652316d9 /src/dabInputFifo.h | |
| download | dabmux-bbab73a63b8c7b50e8a8cb228999d45024fad984.tar.gz dabmux-bbab73a63b8c7b50e8a8cb228999d45024fad984.tar.bz2 dabmux-bbab73a63b8c7b50e8a8cb228999d45024fad984.zip | |
added unmodified mmbtools
Diffstat (limited to 'src/dabInputFifo.h')
| -rw-r--r-- | src/dabInputFifo.h | 101 | 
1 files changed, 101 insertions, 0 deletions
| diff --git a/src/dabInputFifo.h b/src/dabInputFifo.h new file mode 100644 index 0000000..1844d1e --- /dev/null +++ b/src/dabInputFifo.h @@ -0,0 +1,101 @@ +/* +   Copyright (C) 2009 Her Majesty the Queen in Right of Canada (Communications +   Research Center Canada) +   */ +/* +   This file is part of CRC-DabMux. + +   CRC-DabMux is free software: you can redistribute it and/or modify +   it under the terms of the GNU General Public License as +   published by the Free Software Foundation, either version 3 of the +   License, or (at your option) any later version. + +   CRC-DabMux is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +   GNU General Public License for more details. + +   You should have received a copy of the GNU General Public License +   along with CRC-DabMux.  If not, see <http://www.gnu.org/licenses/>. +   */ + +#ifndef DAB_INPUT_FIFO_H +#define DAB_INPUT_FIFO_H + +#ifdef HAVE_CONFIG_H +#   include "config.h" +#endif +#include "dabInputFile.h" +#include "TcpLog.h" +extern TcpLog etiLog; + + +#ifdef _WIN32 +#   include <io.h> + +#   define sem_t HANDLE +#   define O_NONBLOCK 0 +#else +#   include <semaphore.h> +#   define O_BINARY 0 +#endif + + +#ifdef HAVE_FORMAT_PACKET +#   ifdef HAVE_INPUT_FIFO +extern struct dabInputOperations dabInputFifoOperations; + + +struct dabInputFifoStatRecord { +    int curSize; +    int maxSize; +}; + + +#define NB_RECORDS      10 +struct dabInputFifoStats { +    int id; +    bool full; +    bool empty; +    bool error; +    bool input; +    int bufferCount; +    dabInputFifoStatRecord bufferRecords[NB_RECORDS]; +    int frameCount; +    dabInputFifoStatRecord frameRecords[NB_RECORDS]; +}; + + +struct dabInputFifoData : dabInputFileData { +    static int nb; +    int maxSize; +    int curSize; +    int head; +    int tail; +    dabInputFifoStats stats; +    unsigned char* buffer; +    pthread_t thread; +    sem_t semInfo; +    sem_t semBuffer; +    sem_t semFull; +    bool full; +    bool running; +}; + + +int dabInputFifoInit(void** args); +int dabInputFifoOpen(void* args, const char* filename); +int dabInputFifoSetbuf(void* args, int size); +int dabInputFifoRead(void* args, void* buffer, int size); +int dabInputFifoLock(void* args); +int dabInputFifoUnlock(void* args); +int dabInputFifoClose(void* args); +int dabInputFifoClean(void** args); +int dabInputFifoRewind(void* args); +void* dabInputFifoThread(void* args); + + +#   endif +#endif + +#endif // DAB_INPUT_FIFO_H | 
