~ubuntu-branches/ubuntu/saucy/darktable/saucy

« back to all changes in this revision

Viewing changes to src/control/jobs/film_jobs.c

  • Committer: Bazaar Package Importer
  • Author(s): David Bremner
  • Date: 2011-04-14 23:42:12 UTC
  • Revision ID: james.westby@ubuntu.com-20110414234212-kuffcz5wiu18v6ra
Tags: upstream-0.8
ImportĀ upstreamĀ versionĀ 0.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    This file is part of darktable,
 
3
    copyright (c) 2010 Henrik Andersson.
 
4
 
 
5
    darktable is free software: you can redistribute it and/or modify
 
6
    it under the terms of the GNU General Public License as published by
 
7
    the Free Software Foundation, either version 3 of the License, or
 
8
    (at your option) any later version.
 
9
 
 
10
    darktable is distributed in the hope that it will be useful,
 
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
    GNU General Public License for more details.
 
14
 
 
15
    You should have received a copy of the GNU General Public License
 
16
    along with darktable.  If not, see <http://www.gnu.org/licenses/>.
 
17
*/
 
18
#include <stdlib.h>
 
19
#include "common/film.h"
 
20
#include "control/jobs/film_jobs.h"
 
21
 
 
22
void dt_film_import1_init(dt_job_t *job, dt_film_t *film)
 
23
{
 
24
  dt_control_job_init(job, "cache load raw images for preview");
 
25
  job->execute = &dt_film_import1_run;
 
26
  dt_film_import1_t *t = (dt_film_import1_t *)job->param;
 
27
  t->film = film;
 
28
  dt_pthread_mutex_lock(&film->images_mutex);
 
29
  film->ref++;
 
30
  dt_pthread_mutex_unlock(&film->images_mutex);
 
31
}
 
32
 
 
33
int32_t dt_film_import1_run(dt_job_t *job)
 
34
{
 
35
  dt_film_import1_t *t = (dt_film_import1_t *)job->param;
 
36
  dt_film_import1(t->film);
 
37
  dt_pthread_mutex_lock(&t->film->images_mutex);
 
38
  t->film->ref--;
 
39
  dt_pthread_mutex_unlock(&t->film->images_mutex);
 
40
  if(t->film->ref <= 0)
 
41
  {
 
42
    dt_film_cleanup(t->film);
 
43
    free(t->film);
 
44
  }
 
45
  return 0;
 
46
}