Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
int dt_lua_init_database(lua_State * L)
{

    /* database type */
    dt_lua_init_type(L,dt_lua_database_t);
    dt_lua_register_type_callback_number(L,dt_lua_database_t,database_index,NULL,database_len);
    lua_pushcfunction(L,dt_lua_duplicate_image);
    dt_lua_register_type_callback_stack(L,dt_lua_database_t,"duplicate");
    lua_pushcfunction(L,import_images);
    dt_lua_register_type_callback_stack(L,dt_lua_database_t,"import");

    /* darktable.images() */
    dt_lua_push_darktable_lib(L);
    void * tmp= NULL;
    luaA_push(L,dt_lua_database_t,&tmp);
    lua_setfield(L,-2,"database");
    return 0;
}
Exemplo n.º 3
0
int dt_lua_init_image(lua_State * L)
{
  luaA_struct(L,dt_image_t);
  luaA_struct_member(L,dt_image_t,exif_exposure,float);
  luaA_struct_member(L,dt_image_t,exif_aperture,float);
  luaA_struct_member(L,dt_image_t,exif_iso,float);
  luaA_struct_member(L,dt_image_t,exif_focal_length,float);
  luaA_struct_member(L,dt_image_t,exif_focus_distance,float);
  luaA_struct_member(L,dt_image_t,exif_crop,float);
  luaA_struct_member(L,dt_image_t,exif_maker,char_32);
  luaA_struct_member(L,dt_image_t,exif_model,char_32);
  luaA_struct_member(L,dt_image_t,exif_lens,char_52);
  luaA_struct_member(L,dt_image_t,exif_datetime_taken,char_20);
  luaA_struct_member(L,dt_image_t,filename,const char_filename_length);
  luaA_struct_member(L,dt_image_t,width,const int32_t);
  luaA_struct_member(L,dt_image_t,height,const int32_t);
  luaA_struct_member(L,dt_image_t,longitude,double);
  luaA_struct_member(L,dt_image_t,latitude,double);

  dt_lua_init_type(L,dt_lua_image_t);
  dt_lua_register_type_callback_list(L,dt_lua_image_t,image_index,image_newindex,image_fields_name);
  dt_lua_register_type_callback_type(L,dt_lua_image_t,image_index,image_newindex,dt_image_t);
  dt_lua_register_type_callback_list(L,dt_lua_image_t,colorlabel_index,colorlabel_newindex,dt_colorlabels_name);
  dt_lua_register_type_callback(L,dt_lua_image_t,image_index,NULL, "path", "duplicate_index", "is_ldr", "is_hdr", "is_raw", "id","group_leader",NULL) ; // make these fields read-only
  lua_pushcfunction(L,dt_lua_duplicate_image);
  dt_lua_register_type_callback_stack(L,dt_lua_image_t,"duplicate");
  lua_pushcfunction(L,group_with);
  dt_lua_register_type_callback_stack(L,dt_lua_image_t,"group_with");
  lua_pushcfunction(L,make_group_leader);
  dt_lua_register_type_callback_stack(L,dt_lua_image_t,"make_group_leader");
  lua_pushcfunction(L,get_group);
  dt_lua_register_type_callback_stack(L,dt_lua_image_t,"get_group_members");
  luaL_getmetatable(L,"dt_lua_image_t");
  lua_pushcfunction(L,image_eq);
  lua_setfield(L,-2,"__eq");
  lua_pushcfunction(L,image_tostring);
  lua_setfield(L,-2,"__tostring");
  lua_pop(L,1);

  return 0;
}