summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2015-07-10 16:05:29 +0200
committerDavid King <amigadave@amigadave.com>2015-08-17 16:37:45 +0100
commit8dda8bf18b5fb82f6b1087dc4e2ccb2415d5611b (patch)
tree3f7ea94e2b6872d5734da7e054133b80bb280d5c /src
parent88699b2fa0d9f23f13f51b2c461d099d239a0cf2 (diff)
downloadcheese-8dda8bf18b5fb82f6b1087dc4e2ccb2415d5611b.tar.gz
device-monitor: port to GstDeviceMonitor
Use GstDeviceMonitor to monitor the GStreamer devices.
Diffstat (limited to 'src')
-rw-r--r--src/cheese-preferences.vala16
-rw-r--r--src/vapi/cheese-common.vapi17
2 files changed, 14 insertions, 19 deletions
diff --git a/src/cheese-preferences.vala b/src/cheese-preferences.vala
index 21b68f38..8a3eb7ea 100644
--- a/src/cheese-preferences.vala
+++ b/src/cheese-preferences.vala
@@ -108,7 +108,7 @@ public PreferencesDialog (Cheese.Camera camera)
devices.foreach(add_camera_device);
- settings.set_string ("camera", camera.get_selected_device ().get_device_node ());
+ settings.set_string ("camera", camera.get_selected_device ().get_name ());
setup_resolutions_for_device (camera.get_selected_device ());
}
@@ -196,10 +196,10 @@ public PreferencesDialog (Cheese.Camera camera)
combo.get_active_iter (out iter);
combo.model.get (iter, 1, out dev);
- camera.set_device_by_device_node (dev.get_device_node ());
+ camera.set_device (dev);
camera.switch_camera_device ();
setup_resolutions_for_device (camera.get_selected_device ());
- settings.set_string ("camera", dev.get_device_node ());
+ settings.set_string ("camera", dev.get_name ());
}
/**
@@ -387,7 +387,7 @@ public PreferencesDialog (Cheese.Camera camera)
camera_model.get (iter, 1, out new_device, -1);
// Found the device that was removed.
- if (strcmp (old_device.device_node, new_device.device_node) != 0)
+ if (old_device != new_device)
{
remove_camera_device (iter, new_device, active_device);
device_removed = true;
@@ -406,7 +406,7 @@ public PreferencesDialog (Cheese.Camera camera)
}
}
- settings.set_string ("camera", camera.get_selected_device ().get_device_node ());
+ settings.set_string ("camera", camera.get_selected_device ().get_name ());
setup_resolutions_for_device (camera.get_selected_device ());
}
@@ -425,10 +425,10 @@ public PreferencesDialog (Cheese.Camera camera)
camera_model.append (out iter);
camera_model.set (iter,
- 0, dev.get_name () + " (" + dev.get_device_node () + ")",
+ 0, dev.get_name (),
1, dev);
- if (camera.get_selected_device ().get_device_node () == dev.get_device_node ())
+ if (camera.get_selected_device () == dev)
source_combo.set_active_iter (iter);
if (camera_model.iter_n_children (null) > 1)
@@ -448,7 +448,7 @@ public PreferencesDialog (Cheese.Camera camera)
unowned GLib.PtrArray devices = camera.get_camera_devices ();
// Check if the camera that we want to remove, is the active one
- if (strcmp (device_node.device_node, active_device_node.device_node) == 0)
+ if (device_node == active_device_node)
{
if (devices.len > 0)
set_new_available_camera_device (iter);
diff --git a/src/vapi/cheese-common.vapi b/src/vapi/cheese-common.vapi
index a926725b..702d7012 100644
--- a/src/vapi/cheese-common.vapi
+++ b/src/vapi/cheese-common.vapi
@@ -43,8 +43,7 @@ namespace Cheese
public bool has_camera ();
public void play ();
public void set_balance_property (string property, double value);
- public void set_device_by_device_node (string file);
- public void set_device_by_uuid (string uuid);
+ public void set_device (Cheese.CameraDevice device);
public void set_effect (Cheese.Effect effect);
public void toggle_effects_pipeline (bool active);
public void connect_effect_texture (Cheese.Effect effect, Clutter.Texture texture);
@@ -77,17 +76,13 @@ namespace Cheese
public CameraDevice (string uuid, string device_node, string name, int v4lapi_version) throws GLib.Error;
public Cheese.VideoFormat get_best_format ();
public Gst.Caps get_caps_for_format (Cheese.VideoFormat format);
- public unowned string get_device_node ();
public GLib.List<unowned Cheese.VideoFormat> get_format_list ();
- public unowned string get_uuid ();
public unowned string get_name ();
- public unowned string get_src ();
+ public Gst.Element get_src ();
[NoAccessorMethod]
- public uint v4l_api_version {get; construct;}
- public string device_node {get; construct;}
+ public Gst.Device device {get; construct;}
[NoAccessorMethod]
- public string uuid {owned get; construct;}
- public string name {get; construct;}
+ public string name {get;}
}
[CCode (cheader_filename = "cheese-camera-device-monitor.h")]
@@ -96,8 +91,8 @@ namespace Cheese
[CCode (has_construct_function = false)]
public CameraDeviceMonitor ();
public void coldplug ();
- public virtual signal void added (string uuid, string device_file, string product_name, uint api_version);
- public virtual signal void removed (string id);
+ public virtual signal void added (Gst.Device device);
+ public virtual signal void removed (Gst.Device device);
}