aboutsummaryrefslogtreecommitdiff
path: root/common.c
diff options
context:
space:
mode:
authorDavide Morelli <morellid@users.sourceforge.net>2005-11-29 18:04:09 +0000
committerDavide Morelli <morellid@users.sourceforge.net>2005-11-29 18:04:09 +0000
commit8911ddbc575c4714c5ac294dd32bbd9ab4278a2d (patch)
treea02a04e2ab02abc133a5c96b70788f9da9fb48c0 /common.c
parenteb9ef05774af20edb43118182834c18a4ac70707 (diff)
adding shared functions
svn path=/trunk/externals/frankenstein/; revision=4081
Diffstat (limited to 'common.c')
-rwxr-xr-xcommon.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/common.c b/common.c
new file mode 100755
index 0000000..1eb896f
--- /dev/null
+++ b/common.c
@@ -0,0 +1,63 @@
+
+#include "common.h"
+
+t_duration int2duration(int n)
+{
+ t_duration dur;
+ int curr, i, j, ok;
+ curr=0;
+ ok=0;
+ for (i=0; i<num_possible_denominators; i++)
+ {
+ for (j=0; j<i; j++)
+ {
+ if (curr==n)
+ {
+ dur.numerator=j;
+ dur.denominator=i;
+ j=i;
+ i=num_possible_denominators;
+ ok=1;
+ } else
+ curr++;
+ }
+ }
+ if (ok)
+ return dur;
+ else
+ {
+ dur.numerator=1;
+ dur.denominator=1;
+ return dur;
+ }
+}
+
+unsigned short int duration2int(t_duration dur)
+{
+ unsigned short int curr, i, j;
+ curr=0;
+ for (i=0; i<num_possible_denominators; i++)
+ {
+ for (j=0; j<i; j++)
+ {
+ if ((dur.numerator==j) && (dur.denominator==i))
+ {
+ return curr;
+ } else
+ curr++;
+ }
+ }
+ return curr+1;
+}
+
+int possible_durations()
+{
+ int ris, i;
+ ris = 0;
+ for (i=0; i<num_possible_denominators; i++)
+ {
+ ris += possible_denominators[i]-1;
+ }
+ ris += 1;
+ return ris;
+} \ No newline at end of file