Example #1
0
static int crate_init(struct crate *c, const char *name, bool is_fixed)
{
    c->name = strdup(name);
    if (c->name == NULL) {
        perror("strdup");
        return -1;
    }

    c->is_fixed = is_fixed;
    listing_init(&c->by_artist);
    listing_init(&c->by_bpm);
    listing_init(&c->by_order);

    return 0;
}
Example #2
0
static int excrate_init(struct excrate *e, const char *script,
                        const char *search, struct listing *storage)
{
    pid_t pid;

    fprintf(stderr, "External scan '%s'...\n", search);

    pid = fork_pipe_nb(&e->fd, script, "scan", search, NULL);
    if (pid == -1)
        return -1;

    e->pid = pid;
    e->pe = NULL;
    e->terminated = false;
    e->refcount = 0;
    rb_reset(&e->rb);
    listing_init(&e->listing);
    e->storage = storage;
    event_init(&e->completion);
    e->search = search;

    list_add(&e->excrates, &excrates);
    rig_post_excrate(e);

    return 0;
}
Example #3
0
void selector_init(struct selector_t *sel, struct library_t *lib)
{
    sel->library = lib;

    scroll_reset(&sel->records);
    scroll_reset(&sel->crates);

    scroll_set_entries(&sel->crates, lib->crates);

    sel->toggled = false;
    sel->search[0] = '\0';
    sel->search_len = 0;

    listing_init(&sel->listing_a);
    listing_init(&sel->listing_b);
    sel->view_listing = &sel->listing_a;
    sel->swap_listing = &sel->listing_b;

    (void)listing_copy(initial(sel), sel->view_listing);
    scroll_set_entries(&sel->records, sel->view_listing->entries);
}