From efdee570865b68fd83154e5d46d87e388180da21 Mon Sep 17 00:00:00 2001 From: Hannes Date: Fri, 13 Jan 2012 21:02:36 +0100 Subject: [PATCH 1/2] unknown --- headeredit.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/headeredit.cpp b/headeredit.cpp index 2bd610f..42a3d48 100644 --- a/headeredit.cpp +++ b/headeredit.cpp @@ -9,14 +9,18 @@ main() { + /* + * old_headersize, f und o vorher setzen*/ std::vector data; FILE* f = fopen("outputfileulaw.wav", "rb"); rewind(f); + //int old_header_size = 0; while(!feof(f)) { unsigned char s; fread(&s, sizeof s, 1, f); data.push_back(s); + int* last_word = (int*)&data[data.size()-4]; } FILE* o = fopen("outputfileulaw.raw", "wb"); int headersize = 4; From 5a4fe6ec842454a8898f8b9d1d73e4045954cb66 Mon Sep 17 00:00:00 2001 From: Hannes Date: Fri, 13 Jan 2012 21:42:47 +0100 Subject: [PATCH 2/2] modified ringbuffer --- ringbuf_small.c | 16 +++++++++------- ringbuf_small.h | 14 +++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/ringbuf_small.c b/ringbuf_small.c index d848be9..360d3e9 100644 --- a/ringbuf_small.c +++ b/ringbuf_small.c @@ -14,7 +14,7 @@ * PUT AND GET ARE NOT REENTRANT! */ -void ringbuf_init(ringbuf_t *rb, char* buf, int size){ +void ringbuf_init(ringbuf_t *rb, uint16_t * buf, uint8_t size){ rb->startptr = buf; rb->size = size; rb->readpos = 0; @@ -24,7 +24,7 @@ void ringbuf_init(ringbuf_t *rb, char* buf, int size){ /* pushes a value onto the ringbuffer * returns 0 on success, 1 on buffer full */ -uint8_t ringbuf_put(ringbuf_t *rb, uint8_t value){ +uint8_t ringbuf_put(ringbuf_t *rb, uint16_t value){ // calculate next ptr pos uint8_t next = rb->writepos + 1; if(next >= rb->size){ @@ -41,10 +41,10 @@ uint8_t ringbuf_put(ringbuf_t *rb, uint8_t value){ } /* gets a value from the ringbuffer - * returns value on success, -1 on buffer empty + * returns 0 on success, -1 on buffer empty */ -int16_t ringbuf_get(ringbuf_t *rb){ - uint8_t value; +int8_t ringbuf_get(ringbuf_t *rb, uint16_t* data){ + //uint16_t value; uint8_t next; // calculate next ptr pos next = rb->readpos + 1; @@ -55,12 +55,14 @@ int16_t ringbuf_get(ringbuf_t *rb){ if(rb->readpos == rb->writepos){ return(-1); } - value = *(rb->startptr + rb->readpos); + *data = *(rb->startptr + rb->readpos); rb->readpos = next; - return(value); + return(0); } + + diff --git a/ringbuf_small.h b/ringbuf_small.h index ce6ff6b..220c43f 100644 --- a/ringbuf_small.h +++ b/ringbuf_small.h @@ -4,15 +4,15 @@ #include typedef struct { - char* startptr; - uint8_t size; - uint8_t readpos; - uint8_t writepos; + uint16_t* startptr; + uint16_t size; + uint16_t readpos; + uint16_t writepos; } ringbuf_t; -void ringbuf_init(ringbuf_t* rb, char* buf, int size); -uint8_t ringbuf_put(ringbuf_t *rb, uint8_t value); -int16_t ringbuf_get(ringbuf_t *rb); +void ringbuf_init(ringbuf_t* rb, uint16_t* buf, uint8_t size); +uint8_t ringbuf_put(ringbuf_t *rb, uint16_t value); +int8_t ringbuf_get(ringbuf_t *rb, uint16_t* data); #endif