Ejemplo n.º 1
0
Archivo: mfp_comm.c Proyecto: wrl/mfp
void 
mfp_comm_io_finish(void) 
{
    pthread_mutex_lock(&comm_io_lock);
    comm_io_quitreq = 1;
    pthread_cond_broadcast(&outgoing_cond);
    pthread_mutex_unlock(&comm_io_lock);
    mfp_comm_io_wait();
}
Ejemplo n.º 2
0
Archivo: main.c Proyecto: bgribble/mfp
/* main() gets called only if this is a standalone JACK client 
 * startup.  The MFP process will cause this to be run */ 
int
main(int argc, char ** argv) 
{
    char * sockname;
    char default_sockname[] = MFP_DEFAULT_SOCKET; 
    int max_blocksize = 4096;
    int num_inputs = 2;
    int num_outputs = 2; 
    mfp_context * ctxt;

    if (argc < 2) {
        printf("mfpdsp: Warning: No socket specified, using default '%s'\n", 
                default_sockname);
        sockname = default_sockname;
    }
    else { 
        sockname = argv[1];

        if (argc < 3) {
            printf("mfpdsp: Warning: No max_blocksize specified, using default '%d'\n", 
                   max_blocksize);
        }
        else {
            max_blocksize = strtod(argv[2], NULL);
            if (argc < 4) {
                printf("mfpdsp: Warning: No num_inputs specified, using default '%d'\n", 
                       num_inputs);
            }
            else {
                num_inputs = strtod(argv[3], NULL);
                if (argc < 5) { 
                    printf("mfpdsp: Warning: No num_outputs specified, using default '%d'\n", 
                           num_outputs);
                }
                else {
                    num_outputs = strtod(argv[4], NULL);
                }
            }
        }
    }

   /* install SIGSEGV handlers */
    struct sigaction sa;
    sa.sa_flags = SA_SIGINFO;
    sigemptyset(&sa.sa_mask);
    sa.sa_sigaction = sigsegv_handler;
    if (sigaction(SIGSEGV, &sa, NULL) == -1) {
        mfp_log_error("mfpdsp: ERROR: could not install SIGSEGV handler, exiting\n");
        return -1;
    }
    
    /* set up global state */
    mfp_init_all(sockname);
    ctxt = mfp_jack_startup("mfpdsp", num_inputs, num_outputs);

    mfp_context_init(ctxt);
    mfp_comm_io_wait();
    mfp_jack_shutdown();
    return 0;

}