Пример #1
0
/* main thread only */
static gboolean cdaudio_init (void)
{
    mutex = g_mutex_new ();

    mlp_config_set_defaults ("CDDA", cdaudio_defaults);

    cdng_cfg.use_cdtext = mlp_get_bool ("CDDA", "use_cdtext");
    cdng_cfg.use_cddb = mlp_get_bool ("CDDA", "use_cddb");
    cdng_cfg.device = mlp_get_string ("CDDA", "device");
    cdng_cfg.cddb_server = mlp_get_string ("CDDA", "cddbserver");
    cdng_cfg.cddb_path = mlp_get_string ("CDDA", "cddbpath");
    cdng_cfg.cddb_port = mlp_get_int ("CDDA", "cddbport");
    cdng_cfg.cddb_http = mlp_get_bool ("CDDA", "cddbhttp");
    cdng_cfg.disc_speed = mlp_get_int ("CDDA", "disc_speed");
    cdng_cfg.disc_speed = CLAMP (cdng_cfg.disc_speed, MIN_DISC_SPEED, MAX_DISC_SPEED);

    cdng_cfg.use_proxy = mlp_get_bool (NULL, "use_proxy");
    cdng_cfg.proxy_host = mlp_get_string (NULL, "proxy_host");
    cdng_cfg.proxy_port = mlp_get_int (NULL, "proxy_port");
    cdng_cfg.proxy_username = mlp_get_string (NULL, "proxy_user");
    cdng_cfg.proxy_password = mlp_get_string (NULL, "proxy_pass");

    if (!cdio_init ())
    {
        cdaudio_error ("Failed to initialize cdio subsystem.");
        return FALSE;
    }

    libcddb_init ();

    return TRUE;
}
Пример #2
0
static void
parse_cddb (cdda_t *cd)
{
    cddb_disc_t *disc;
    cddb_conn_t *conn;
    int res;

    if (!cd)
        return;

    libcddb_init ();
    conn = cddb_new ();
    disc = cddb_disc_new ();

    cddb_disc_set_category_str (disc, "misc");
    cddb_disc_set_discid (disc, cd->id);

    res = cddb_read (conn, disc);
    if (!res)
        goto err_cddb_read;

    cd_get_metadata (cd, disc);
    cd_get_tracks (cd, disc);

 err_cddb_read:
    cddb_disc_destroy (disc);
    libcddb_shutdown ();
}