예제 #1
0
파일: film.c 프로젝트: bartokk/darktable
int dt_lua_init_film(lua_State * L)
{

  dt_lua_init_int_type(L,dt_lua_film_t);
  dt_lua_register_type_callback_list(L,dt_lua_film_t,film_index,NULL,film_fields_name);
  dt_lua_register_type_callback_number(L,dt_lua_film_t,film_getnum,NULL,film_len);
  lua_pushcfunction(L,dt_lua_move_image);
  dt_lua_register_type_callback_stack(L,dt_lua_film_t,"move_image");
  lua_pushcfunction(L,dt_lua_copy_image);
  dt_lua_register_type_callback_stack(L,dt_lua_film_t,"copy_image");
  luaL_getmetatable(L,"dt_lua_film_t");
  lua_pushcfunction(L,film_tostring);
  lua_setfield(L,-2,"__tostring");
  lua_pop(L,1);

  /* film table */
  dt_lua_push_darktable_lib(L);
  luaA_Type type_id = dt_lua_init_singleton(L,"film_database",NULL);
  lua_setfield(L,-2,"films");
  lua_pop(L,1);

  dt_lua_register_type_callback_number_typeid(L,type_id,films_index,NULL,films_len);
  lua_pushcfunction(L,films_new);
  dt_lua_register_type_callback_stack_typeid(L,type_id,"new");
  lua_pushcfunction(L,film_delete);
  dt_lua_register_type_callback_stack_typeid(L,type_id,"delete");

  return 0;
}
예제 #2
0
int dt_lua_init_database(lua_State * L)
{

  /* database type */
  dt_lua_push_darktable_lib(L);
  luaA_Type type_id = dt_lua_init_singleton(L,"image_database");
  lua_setfield(L,-2,"database");
  lua_pop(L,1);

  dt_lua_register_type_callback_number_typeid(L,type_id,database_index,NULL,database_len);
  lua_pushcfunction(L,dt_lua_duplicate_image);
  dt_lua_register_type_callback_stack_typeid(L,type_id,"duplicate");
  lua_pushcfunction(L,import_images);
  dt_lua_register_type_callback_stack_typeid(L,type_id,"import");

  return 0;
}