コード例 #1
0
static int32_t dt_camera_import_job_run(dt_job_t *job)
{
  dt_camera_import_t *params = dt_control_job_get_params(job);
  dt_control_log(_("starting to import images from camera"));

  if(!dt_import_session_ready(params->shared.session))
  {
    dt_control_log("Failed to import images from camera.");
    return 1;
  }

  guint total = g_list_length(params->images);
  char message[512] = { 0 };
  snprintf(message, sizeof(message),
           ngettext("importing %d image from camera", "importing %d images from camera", total), total);
  dt_control_job_set_progress_message(job, message);

  // Switch to new filmroll
  dt_film_open(dt_import_session_film_id(params->shared.session));
  dt_ctl_switch_mode_to(DT_LIBRARY);

  // register listener
  dt_camctl_listener_t listener = { 0 };
  listener.data = params;
  listener.image_downloaded = _camera_import_image_downloaded;
  listener.request_image_path = _camera_request_image_path;
  listener.request_image_filename = _camera_request_image_filename;

  // start download of images
  dt_camctl_register_listener(darktable.camctl, &listener);
  dt_camctl_import(darktable.camctl, params->camera, params->images);
  dt_camctl_unregister_listener(darktable.camctl, &listener);

  return 0;
}
コード例 #2
0
ファイル: tethering.c プロジェクト: AdamMajer/darktable
static void _camera_capture_image_downloaded(const dt_camera_t *camera, const char *filename, void *data)
{
  dt_capture_t *lib = (dt_capture_t *)data;

  /* create an import job of downloaded image */
  dt_control_add_job(darktable.control, DT_JOB_QUEUE_USER_BG,
                     dt_image_import_job_create(dt_import_session_film_id(lib->session), filename));
}
コード例 #3
0
ファイル: tethering.c プロジェクト: AdamMajer/darktable
static void _capture_view_set_jobcode(const dt_view_t *view, const char *name)
{
  g_assert(view != NULL);
  dt_capture_t *cv = (dt_capture_t *)view->data;
  dt_import_session_set_name(cv->session, name);
  dt_film_open(dt_import_session_film_id(cv->session));
  dt_control_log(_("new session initiated '%s'"), name);
}
コード例 #4
0
ファイル: camera_jobs.c プロジェクト: yama1968/darktable
/** Listener interface for import job */
void _camera_import_image_downloaded(const dt_camera_t *camera,const char *filename,void *data)
{
  // Import downloaded image to import filmroll
  dt_camera_import_t *t = (dt_camera_import_t *)data;
  dt_image_import(dt_import_session_film_id(t->shared.session), filename, FALSE);
  dt_control_queue_redraw_center();
  dt_control_log(_("%d/%d imported to %s"), t->import_count+1,g_list_length(t->images), g_path_get_basename(filename));

  t->fraction+=1.0/g_list_length(t->images);

  dt_control_backgroundjobs_progress(darktable.control, t->bgj, t->fraction );

  t->import_count++;
}
コード例 #5
0
/** Listener interface for import job */
void _camera_import_image_downloaded(const dt_camera_t *camera, const char *filename, void *data)
{
  // Import downloaded image to import filmroll
  dt_camera_import_t *t = (dt_camera_import_t *)data;
  dt_image_import(dt_import_session_film_id(t->shared.session), filename, FALSE);
  dt_control_queue_redraw_center();
  gchar *basename = g_path_get_basename(filename);
  dt_control_log(ngettext("%d/%d imported to %s", "%d/%d imported to %s", t->import_count + 1),
                 t->import_count + 1, g_list_length(t->images), basename);
  g_free(basename);

  t->fraction += 1.0 / g_list_length(t->images);

  dt_control_job_set_progress(t->job, t->fraction);

  t->import_count++;
}
コード例 #6
0
ファイル: camera_jobs.c プロジェクト: yama1968/darktable
void _camera_capture_image_downloaded(const dt_camera_t *camera,const char *filename,void *data)
{
  dt_job_t j;
  dt_camera_capture_t *t;

  t = (dt_camera_capture_t*)data;

  /* create an import job of downloaded image */
  dt_image_import_job_init(&j, dt_import_session_film_id(t->shared.session), filename);
  dt_control_add_job(darktable.control, &j);
  if (--t->total == 0)
  {
    pthread_mutex_lock(&t->mutex);
    pthread_cond_broadcast(&t->done);
    pthread_mutex_unlock(&t->mutex);
  }
}
コード例 #7
0
ファイル: camera_jobs.c プロジェクト: yama1968/darktable
int32_t dt_camera_import_job_run(dt_job_t *job)
{
  dt_camera_import_t *t = (dt_camera_import_t *)job->param;
  dt_control_log(_("starting to import images from camera"));

  if (!dt_import_session_ready(t->shared.session))
  {
    dt_control_log("Failed to import images from camera.");
    return 1;
  }

  int total = g_list_length( t->images );
  char message[512]= {0};
  sprintf(message, ngettext ("importing %d image from camera", "importing %d images from camera", total), total );
  t->bgj = dt_control_backgroundjobs_create(darktable.control, 0, message);

  // Switch to new filmroll
  dt_film_open(dt_import_session_film_id(t->shared.session));
  dt_ctl_switch_mode_to(DT_LIBRARY);

  // register listener
  dt_camctl_listener_t listener= {0};
  listener.data=t;
  listener.image_downloaded=_camera_import_image_downloaded;
  listener.request_image_path=_camera_request_image_path;
  listener.request_image_filename=_camera_request_image_filename;

  // start download of images
  dt_camctl_register_listener(darktable.camctl,&listener);
  dt_camctl_import(darktable.camctl,t->camera,t->images);
  dt_camctl_unregister_listener(darktable.camctl,&listener);
  dt_control_backgroundjobs_destroy(darktable.control, t->bgj);

  dt_import_session_destroy(t->shared.session);

  return 0;
}