Ejemplo n.º 1
0
void del_Module(Module* module)
{
    if (module == NULL)
        return;

    del_Environment(module->env);
    del_Song_table(module->songs);
    del_Pat_table(module->pats);
    del_Connections(module->connections);
    del_Au_table(module->au_table);
    del_Bit_array(module->au_controls);
    del_Input_map(module->au_map);
    del_Track_list(module->track_list);
    del_Channel_defaults_list(module->ch_defs);

    for (int i = 0; i < KQT_SONGS_MAX; ++i)
        del_Order_list(module->order_lists[i]);

    for (int i = 0; i < KQT_TUNING_TABLES_MAX; ++i)
        del_Tuning_table(module->tuning_tables[i]);

    del_Bind(module->bind);

    Device_deinit(&module->parent);
    memory_free(module);

    return;
}
Ejemplo n.º 2
0
Environment* new_Environment(void)
{
    Environment* env = memory_alloc_item(Environment);
    if (env == NULL)
        return NULL;

    env->vars = NULL;
    env->iter = NULL;
    env->vars = new_AAtree(
            (int (*)(const void*, const void*))strcmp,
            (void (*)(void*))del_Env_var);
    env->iter = new_AAiter(env->vars);
    if (env->vars == NULL || env->iter == NULL)
    {
        del_Environment(env);
        return NULL;
    }

    return env;
}