Esempio n. 1
0
int do_losetup(int nargs, char **args)
{
  if(nargs !=3)
    return -1;
  if(setloop(args[1], args[2], 0))
    return 0;

  return -1;
}
Esempio n. 2
0
/*
 * loop function
 */
static int default_loop(lua_State *L) {
    unsigned int flags = (unsigned int)luaL_optinteger(L, 1, EVFLAG_AUTO);
    struct ev_loop *loop = ev_default_loop(flags);
    setloop(L, loop);
    return 1;
}
Esempio n. 3
0
int main() {
    // turn all keys off
    for (int i=0; i<13; ++i)
        keys[i] = 0;

    // reset loops[]
    for (int i=0; i<10; ++i)
        loops[i] = NULL;
   
    BPM = 500;  // default tempo
    controller.baud(9600);
     
    pc.printf("\r\ninit\r\n");
    
    // load demo tune
  
    //Demo Song Hardcode

    Loop* demo = setloop(2);
    addnote(demo, currentnote);
    
    threadedloop(demo);
    //free all the notes??
    
    Note* temp;
    while (currentnote->next)  {
        temp = currentnote;
        currentnote = currentnote->next;
        delete temp;
    }
    
    // interactive section
    BPM = 150;  // default tempo
    
    int looper[] = {A, C};
    Loop* loop1 = setloop(-1);
    loops[0] = loop1;
    addnote(loop1, hi(G), 1, 1);
    addnote(loop1, F, 1, 1);
    addnote(loop1, E, 1, 1);
    addnote(loop1, F, 1, 2);
    addnote(loop1, hi(A), 1, 1);
    addnote(loop1, REST, 4, 1);
    
    //Additional Loops
    
    
    //int highnote[] = {hi(E)};
    //int lownote[] = {G};
    
    //Note* freehi = setnote(1, highnote, 1, 1);
    //Note* freelo = setnote(1, lownote, 1, 1);
   
    
    printf("allocated all loops!\r\n");
    
    // ready to play
    // everything has to be part of a Loop in order to play
    

    //Thread t9(freenote, freehi);
    //Thread t10(freenote, freelo);
    
    
    //t1.terminate();  // test to terminate a loop from main thread
    while(1)  {
        //if (controller.readable())  {
            int loopnum;
            
            if (controller.scanf("\n%d", &loopnum))  {
                // code to turn on/off the loop OR play the free note
                pc.printf("received %d\r\n", loopnum);
                
                        loopnum--;
                        if (loopthreads[loopnum])  {
                            pc.printf("end loop %d\r\n", loopnum);
                            loopthreads[loopnum]->terminate();
                            delete loopthreads[loopnum];  // helps with memory
                            loopthreads[loopnum] = NULL;
                        }
                        else  {
                            pc.printf("start loop %d\r\n", loopnum);
                            loopthreads[loopnum] = new Thread(threadedloop, loops[loopnum]);
                        }
                    
            }
        //}
    
    }
}