Subversion Repositories freemyipod

Rev

Rev 714 | Rev 716 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 714 Rev 715
Line 91... Line 91...
91
    free(buf);
91
    free(buf);
92
}
92
}
93
 
93
 
94
void playsong(void *buf, size_t size) {
94
void playsong(void *buf, size_t size) {
95
    int i;
95
    int i;
96
    unsigned int cycles[size / 8], lengths[size / 8];
96
    unsigned int *cycles, *lengths, count;
97
    
97
    
-
 
98
    count = size / 8;
-
 
99
    cycles = malloc(count * sizeof(unsigned int));
-
 
100
    lengths = malloc(count * sizeof(unsigned int));
-
 
101
    
98
    for (i = 0; i < size / 8; ++i)
102
    for (i = 0; i < count; ++i)
99
    {
103
    {
100
        cycles[i] = *((unsigned int *)(buf) + i + i);
104
        cycles[i] = *((unsigned int *)(buf) + i + i);
101
        lengths[i] = *((unsigned int *)(buf) + i + i + 1);
105
        lengths[i] = *((unsigned int *)(buf) + i + i + 1);
102
    }
106
    }
103
    
107
    
104
    for (i = 0; i < size / 8; ++i)
108
    for (i = 0; i < count; ++i)
105
    {
109
    {
106
        if (0 == cycles[i])
110
        if (0 == cycles[i])
107
        {
111
        {
108
            sleep(lengths[i]);
112
            sleep(lengths[i]);
109
            continue;
113
            continue;
110
        }
114
        }
111
        
115
        
112
        singlebeep(cycles[i], lengths[i]);
116
        singlebeep(cycles[i], lengths[i]);
113
    }
117
    }
-
 
118
    
-
 
119
    free(lengths);
-
 
120
    free(cycles);
114
}
121
}
115
 
122
 
116
EMCORE_APP_HEADER("Beeper", main, 127)
123
EMCORE_APP_HEADER("Beeper", main, 127)