Exemple #1
0
void init(char *name, char *pass, int port)
{
    signal_setup();
    memset(&config, 0, sizeof(config));

    // set defaults
    config.buffer_start_fill = 220;
    config.port = port;
    config.password = pass;
    config.apname = name;
    if (config.daemonise)
    {
        daemon_init();
    }

    log_setup();
    config.output = audio_get_output(config.output_name);
    config.output->init();

    uint8_t ap_md5[16];
    MD5_CTX ctx;
    MD5_Init(&ctx);
    MD5_Update(&ctx, config.apname, strlen(config.apname));
    MD5_Final(ap_md5, &ctx);
    memcpy(config.hw_addr, ap_md5, sizeof(config.hw_addr));
    if (config.meta_dir)
        metadata_open();

    rtsp_listen_loop();
}
Exemple #2
0
int main(int argc, char **argv) {
    signal_setup();
    memset(&config, 0, sizeof(config));

    // set defaults
    config.buffer_start_fill = 220;
    config.port = 5002;
    char hostname[100];
    gethostname(hostname, 100);
    config.apname = malloc(20 + 100);
    snprintf(config.apname, 20 + 100, "Shairport on %s", hostname);

    // parse arguments into config
    int audio_arg = parse_options(argc, argv);

    // mDNS supports maximum of 63-character names (we append 13).
    if (strlen(config.apname) > 50)
        die("Supplied name too long (max 50 characters)");

    if (config.daemonise) {
        daemon_init();
    }

    log_setup();

    config.output = audio_get_output(config.output_name);
    if (!config.output) {
        audio_ls_outputs();
        die("Invalid audio output specified!");
    }
    config.output->init(argc-audio_arg, argv+audio_arg);

    uint8_t ap_md5[16];
    MD5_CTX ctx;
    MD5_Init(&ctx);
    MD5_Update(&ctx, config.apname, strlen(config.apname));
    MD5_Final(ap_md5, &ctx);
    memcpy(config.hw_addr, ap_md5, sizeof(config.hw_addr));


    rtsp_listen_loop();

    // should not.
    shairport_shutdown(1);
    return 1;
}
Exemple #3
0
int main(int argc, char **argv) {
    
/*
	struct mpd_connection *conn = NULL;
    conn = mpd_connection_new(NULL, 0, 3000);
	if (conn == NULL) {printf("%s", "Out of memory");	return -1;}
    mpd_run_stop(conn);
	mpd_connection_free(conn);
*/

    signal_setup();
    memset(&config, 0, sizeof(config));

    // set defaults
    config.buffer_start_fill = 220;
    config.port = 5002;
    char hostname[100];
    gethostname(hostname, 100);
    config.apname = malloc(20 + 100);
    snprintf(config.apname, 20 + 100, "%s", hostname);

    // parse arguments into config
    int audio_arg = parse_options(argc, argv);

    // mDNS supports maximum of 63-character names (we append 13).
    if (strlen(config.apname) > 50)
        die("Supplied name too long (max 50 characters)");

    if (config.daemonise) {
        daemon_init();
    }
    	if(ggshutdown)
	{
		if (kill(0, SIGTERM)) {
        	printf("kill(0, SIGTERM))");
    		}
		die("shairport shutted down...!");
	}
	
	printf("stop mpc:\n");
	system("mpc stop");
	printf("mpc stopped\n");
	printf("Starting Shairport %s\n", version);
    log_setup();

    config.output = audio_get_output(config.output_name);
    if (!config.output) {
        audio_ls_outputs();
        die("Invalid audio output specified!");
    }
    config.output->init(argc-audio_arg, argv+audio_arg);

    uint8_t ap_md5[16];
    MD5_CTX ctx;
    MD5_Init(&ctx);
    MD5_Update(&ctx, config.apname, strlen(config.apname));
    MD5_Final(ap_md5, &ctx);
    memcpy(config.hw_addr, ap_md5, sizeof(config.hw_addr));

    if (config.meta_dir)
        metadata_open();

    rtsp_listen_loop();

    // should not.
    shairport_shutdown(1);
    return 1;
}