Esempio n. 1
0
static int import_images(lua_State *L)
{
    char* full_name= realpath(luaL_checkstring(L,-1), NULL);
    int result;

    if (g_file_test(full_name, G_FILE_TEST_IS_DIR))
    {
        result =dt_film_import_blocking(full_name);
        if(result == 0)
        {
            free(full_name);
            return luaL_error(L,"error while importing");
        }
    }
    else
    {
        dt_film_t new_film;
        dt_film_init(&new_film);
        char* dirname =g_path_get_dirname(full_name);
        result = dt_film_new(&new_film,dirname);
        if(result == 0)
        {
            free(full_name);
            dt_film_cleanup(&new_film);
            free(dirname);
            return luaL_error(L,"error while importing");
        }

        result =dt_image_import(new_film.id,full_name,TRUE);
        free(dirname);
        dt_film_cleanup(&new_film);
        if(result == 0)
        {
            free(full_name);
            return luaL_error(L,"error while importing");
        }
    }
    free(full_name);
    return 0;
}
Esempio n. 2
0
int dt_film_import(const char *dirname)
{
  int v = dt_film_import_blocking(dirname,0);
  dt_control_signal_raise(darktable.signals , DT_SIGNAL_FILMROLLS_IMPORTED);
  return v;
}