コード例 #1
0
ファイル: main.c プロジェクト: bitursa/maos
static void maos_daemon(int sock){
    //info2("maos_daemon is listening at %d\n", sock);
    thread_block_signal();
    int cmd[2];
    while(!streadintarr(sock, cmd, 2)){
	//info2("maos_daemon got %d at %d\n", cmd[0], sock);
	switch(cmd[0]){
	case MAOS_SERVER:
	    {
		if(streadfd(sock, &maos_server_fd)){
		    warning("unable to read fd from %d\n", sock);
		    maos_server_fd=-1;
		    EXIT;
		}else{
		    warning("got fd=%d\n", maos_server_fd);
		}
	    }break;
	case MAOS_DRAW:
	    {
		int fd;
		if(streadfd(sock, &fd)){
		    warning("unable to read fd from %d\n", sock);
		    continue;
		}else{
		    warning("got fd=%d\n", fd);
		}
		draw_add(fd);
		PARMS_T *parms=(PARMS_T*)global->parms;//cast away constness
		parms->plot.setup=1;
		parms->plot.run=1;
		if(global->setupdone){//already plotted.
		    plot_setup(global->parms, global->powfs, global->aper, global->recon);
		}
	    }break;
	default:
	    warning("unknown cmd %d\n", cmd[0]);
	    break;
	}
    }
    //info2("maos_daemon quit\n");
}
コード例 #2
0
ファイル: seq.c プロジェクト: JasonWCowling/subsequencely
void set_state(LpState st, u8 setup)
{
    if (lp_state == st && flag_is_set(lp_flags, LP_IS_SETUP) == setup)
    {
        return;
    }

    if (lp_state == LP_SESSION_MODE)
    {
        if (flag_is_set(lp_flags, LP_IS_SETUP))
        {
            session_setup_become_inactive();
        }
        else
        {
            session_mode_become_inactive();
        }
    }
    else if (lp_state == LP_NOTES_MODE)
    {
        if (flag_is_set(lp_flags, LP_IS_SETUP))
        {
            notes_setup_become_inactive();
        }
        else
        {
            notes_mode_become_inactive();
        }
    }
    else if (lp_state == LP_SEQUENCER_MODE)
    {
        if (flag_is_set(lp_flags, LP_IS_SETUP))
        {
            sequencer_setup_become_inactive();
        }
        else
        {
            sequencer_mode_become_inactive();
        }
    }
    else if (lp_state == LP_USER_MODE)
    {
        if (flag_is_set(lp_flags, LP_IS_SETUP))
        {
            user_setup_become_inactive();
        }
        else
        {
            user_mode_become_inactive();
        }
    }

    clear_leds();

    if (st == LP_SESSION_MODE)
    {
        plot_pad(LP_SESSION, number_colors[LP_SESSION_MODE]);

        if (setup)
        {
            session_setup_become_active();
            plot_setup(on_color);
            session_setup_draw();
        }
        else
        {
            session_mode_become_active();
            plot_setup(number_colors[LP_SESSION_MODE]);
            session_mode_draw();
        }
    }
    else if (st == LP_NOTES_MODE)
    {
        plot_pad(LP_NOTE, number_colors[LP_NOTES_MODE]);

        if (setup)
        {
            notes_setup_become_active();
            plot_setup(on_color);
            notes_setup_draw();
        }
        else
        {
            notes_mode_become_active();
            plot_setup(number_colors[LP_NOTES_MODE]);
            notes_mode_draw();
        }
    }
    else if (st == LP_SEQUENCER_MODE)
    {
        plot_pad(LP_DEVICE, number_colors[LP_SEQUENCER_MODE]);

        if (setup)
        {
            sequencer_setup_become_active();
            plot_setup(on_color);
            sequencer_setup_draw();
        }
        else
        {
            sequencer_mode_become_active();
            plot_setup(number_colors[LP_SEQUENCER_MODE]);
            sequencer_mode_draw();
        }
    }
    else if (st == LP_USER_MODE)
    {
        plot_pad(LP_USER, number_colors[LP_USER_MODE]);

        if (setup)
        {
            user_setup_become_active();
            plot_setup(on_color);
            user_setup_draw();
        }
        else
        {
            user_mode_become_active();
            plot_setup(number_colors[LP_USER_MODE]);
            user_mode_draw();
        }
    }

    sequencer_play_draw(&lp_sequencer);

    lp_state = st;
    lp_flags = assign_flag(lp_flags, LP_IS_SETUP, setup);
}