~ubuntu-branches/debian/stretch/cheese/stretch

« back to all changes in this revision

Viewing changes to src/cheese-prefs-balance-scale.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Biebl
  • Date: 2010-05-04 17:37:18 UTC
  • mfrom: (1.1.13 upstream)
  • Revision ID: james.westby@ubuntu.com-20100504173718-k2rx3nryi4vd0xyx
Tags: 2.30.1-1
* New upstream release.
  - HAL dependency has been dropped. Use (g)udev for v4l capability probing
    on Linux. Closes: #573774
  - Split code into separate libraries.
* debian/control.in
  - Drop Build-Depends on libhal-dev.
  - Drop Build-Depends on libebook1.2-dev.
  - Bump Build-Depends on libgtk2.0-dev to (>= 2.19.1).
  - Bump Build-Depends on libgstreamer*-dev to (>= 0.10.23).
  - Add Build-Depends on libcanberra-gtk-dev.
  - Add Build-Depends on libxtst-dev.
  - Add Build-Depends on libgudev-1.0-dev on Linux.
  - Bump Standards-Version to 3.8.4. No further changes.
* Switch to source format 3.0 (quilt)
  - Add debian/source/format.
* debian/rules
  - Drop lpia specific configure flags, lpia is dead.
* Update package layout (based on work by Ubuntu)
  - Move data files into new cheese-common package.
  - Keep binary along with its desktop and dbus service file in the cheese
    package.
  - Add libcheese-gtk18 and libcheese-gtk-dev package for the new
    libcheese-gtk library. Use a symbols file for improved shlibs
    dependencies.
  - Add Conflicts/Replaces to cheese-common to ensure proper upgrades from
    previous versions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#include <string.h>
21
21
#include <glib.h>
22
22
 
23
 
#include "cheese-webcam.h"
 
23
#include <cheese-camera.h>
24
24
#include "cheese-prefs-widget.h"
25
25
#include "cheese-prefs-balance-scale.h"
26
26
 
31
31
  PROP_0,
32
32
  PROP_PROPERTY_NAME,
33
33
  PROP_GCONF_KEY,
34
 
  PROP_WEBCAM
 
34
  PROP_CAMERA
35
35
};
36
36
 
37
37
typedef struct CheesePrefsBalanceScalePrivate
38
38
{
39
 
  CheeseWebcam *webcam;
 
39
  CheeseCamera *camera;
40
40
  gchar *property_name;
41
41
  gchar *gconf_key;
42
42
  gboolean has_been_synchronized;  /* Make sure we don't synchronize if client
43
 
                                    * sets webcam on construction. */
 
43
                                    * sets camera on construction. */
44
44
} CheesePrefsBalanceScalePrivate;
45
45
 
46
46
#define CHEESE_PREFS_BALANCE_SCALE_GET_PRIVATE(o)                     \
77
77
  CheesePrefsBalanceScalePrivate *priv  = CHEESE_PREFS_BALANCE_SCALE_GET_PRIVATE (self);
78
78
  gdouble                         value = gtk_range_get_value (scale);
79
79
 
80
 
  cheese_webcam_set_balance_property (priv->webcam, priv->property_name, value);
 
80
  cheese_camera_set_balance_property (priv->camera, priv->property_name, value);
81
81
 
82
82
  g_object_set (CHEESE_PREFS_WIDGET (self)->gconf, priv->gconf_key, value, NULL);
83
83
 
94
94
  GtkAdjustment *adj;
95
95
  gdouble        min, max, def;
96
96
  gdouble        stored_value;
 
97
  gboolean       can_balance;
97
98
 
98
99
  g_object_get (prefs_widget, "widget", &scale, NULL);
99
100
 
100
 
  cheese_webcam_get_balance_property_range (priv->webcam,
101
 
                                            priv->property_name, &min, &max, &def);
 
101
  /* Disconnect to prevent a whole bunch of changed notifications */
 
102
  g_signal_handlers_disconnect_by_func (scale, cheese_prefs_balance_scale_value_changed, prefs_widget);
 
103
 
 
104
  can_balance = cheese_camera_get_balance_property_range (priv->camera,
 
105
                                                          priv->property_name, &min, &max, &def);
102
106
 
103
107
  adj = GTK_ADJUSTMENT (gtk_adjustment_new (def, min, max, (max - min) / STEPS, 0.0, 0.0));
104
108
  gtk_range_set_adjustment (GTK_RANGE (scale), adj);
105
109
 
106
110
  gtk_scale_add_mark (GTK_SCALE (scale), def, GTK_POS_BOTTOM, NULL);
107
111
 
108
 
  g_object_get (CHEESE_PREFS_WIDGET (self)->gconf, priv->gconf_key, &stored_value, NULL);
109
 
 
110
 
  gtk_range_set_value (GTK_RANGE (scale), stored_value);
111
 
 
112
 
  /* Disconnect to prevent a whole bunch of changed notifications */
113
 
  g_signal_handlers_disconnect_by_func (scale, cheese_prefs_balance_scale_value_changed, prefs_widget);
 
112
  gtk_widget_set_sensitive (scale, can_balance);
 
113
 
 
114
  if (can_balance)
 
115
  {
 
116
    g_object_get (CHEESE_PREFS_WIDGET (self)->gconf, priv->gconf_key, &stored_value, NULL);
 
117
    gtk_range_set_value (GTK_RANGE (scale), stored_value);
 
118
  }
114
119
 
115
120
  g_signal_connect (G_OBJECT (scale), "value-changed",
116
121
                    G_CALLBACK (cheese_prefs_balance_scale_value_changed),
132
137
    case PROP_GCONF_KEY:
133
138
      priv->gconf_key = g_value_dup_string (value);
134
139
      break;
135
 
    case PROP_WEBCAM:
136
 
      priv->webcam = CHEESE_WEBCAM (g_value_get_object (value));
 
140
    case PROP_CAMERA:
 
141
      priv->camera = CHEESE_CAMERA (g_value_get_object (value));
137
142
      if (priv->has_been_synchronized)
138
143
        cheese_prefs_balance_scale_synchronize (CHEESE_PREFS_WIDGET (object));
139
144
      break;
159
164
    case PROP_GCONF_KEY:
160
165
      g_value_set_string (value, priv->gconf_key);
161
166
      break;
162
 
    case PROP_WEBCAM:
163
 
      g_value_set_object (value, priv->webcam);
 
167
    case PROP_CAMERA:
 
168
      g_value_set_object (value, priv->camera);
164
169
      break;
165
170
    default:
166
171
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
198
203
                                                        G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
199
204
 
200
205
  g_object_class_install_property (object_class,
201
 
                                   PROP_WEBCAM,
202
 
                                   g_param_spec_object ("webcam",
203
 
                                                        "webcam",
204
 
                                                        "Webcam object",
205
 
                                                        CHEESE_TYPE_WEBCAM,
 
206
                                   PROP_CAMERA,
 
207
                                   g_param_spec_object ("camera",
 
208
                                                        "camera",
 
209
                                                        "Camera object",
 
210
                                                        CHEESE_TYPE_CAMERA,
206
211
                                                        G_PARAM_READWRITE));
207
212
}
208
213
 
209
214
CheesePrefsBalanceScale *
210
215
cheese_prefs_balance_scale_new (GtkWidget    *scale,
211
 
                                CheeseWebcam *webcam,
 
216
                                CheeseCamera *camera,
212
217
                                const gchar  *property,
213
218
                                const gchar  *gconf_key)
214
219
{
217
222
 
218
223
  self = g_object_new (CHEESE_TYPE_PREFS_BALANCE_SCALE,
219
224
                       "widget", scale,
220
 
                       "webcam", webcam,
 
225
                       "camera", camera,
221
226
                       "property_name", property,
222
227
                       "gconf_key", gconf_key,
223
228
                       NULL);