From 84cff02e8cf3b773d2370d8020b8d1f4b95bcda9 Mon Sep 17 00:00:00 2001 From: Davide Morelli Date: Wed, 30 Nov 2005 17:31:33 +0000 Subject: going little further with common functions svn path=/trunk/externals/frankenstein/; revision=4091 --- common.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 100 insertions(+), 4 deletions(-) (limited to 'common.c') diff --git a/common.c b/common.c index 1eb896f..6f82204 100755 --- a/common.c +++ b/common.c @@ -1,21 +1,27 @@ #include "common.h" +#include +#include + +#include "m_pd.h" // to post errors and debug messages + t_duration int2duration(int n) { t_duration dur; - int curr, i, j, ok; + int curr, i, j, ok, currden; curr=0; ok=0; for (i=0; iprevious = 0; + newElement->next = 0; + newElement->voice=voice; + newElement->duration.numerator = res.numerator; + newElement->duration.denominator = res.denominator; + *firstEvent = newElement; +} + +void concatenateBeat(t_rhythm_event *currentEvent, unsigned short int voice, float fduration) +{ + t_duration res; + t_rhythm_event *newElement, *lastElement; + lastElement = currentEvent; + while(lastElement->next) + lastElement = lastElement->next; + // convert from float to duration + res = float2duration(fduration); + // allocate a new element of the list + newElement = (t_rhythm_event *) malloc(sizeof(t_rhythm_event)); + // set the pointers + newElement->previous = lastElement; + newElement->next = 0; + lastElement->next = newElement; + newElement->voice=voice; + newElement->duration.numerator = res.numerator; + newElement->duration.denominator = res.denominator; + +} + +void freeBeats(t_rhythm_event *currentEvent) +{ + t_rhythm_event *prev; + t_rhythm_event *next; + + // go to the first element of the list + while(currentEvent->previous) + currentEvent = currentEvent->previous; + + // now free each element + next=currentEvent->next; + do + { + prev = currentEvent; + next = currentEvent->next; + free(currentEvent); + } while(next); + } \ No newline at end of file -- cgit v1.2.1