summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAndoni Morales Alastruey <ylatuya@gmail.com>2015-02-10 13:32:00 +0100
committerAndoni Morales Alastruey <ylatuya@gmail.com>2015-04-08 18:45:08 +0200
commit7bc0fa5d705b36f0c22bea7b3b038736ce6fe94b (patch)
tree0d38a3821c962d542e71a50b72e546ae6416e18a /sys
parentfdae6af7ded0b957a9c13122e994e6ffa177a207 (diff)
downloadgstreamer-plugins-bad-7bc0fa5d705b36f0c22bea7b3b038736ce6fe94b.tar.gz
ksvideosrc: only list capture devices
Diffstat (limited to 'sys')
-rw-r--r--sys/winks/kshelpers.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/winks/kshelpers.c b/sys/winks/kshelpers.c
index b6621dea2..3f7b2d25f 100644
--- a/sys/winks/kshelpers.c
+++ b/sys/winks/kshelpers.c
@@ -54,6 +54,7 @@ ks_enumerate_devices (const GUID * category)
for (i = 0;; i++) {
BOOL success;
SP_DEVICE_INTERFACE_DATA if_data = { 0, };
+ SP_DEVICE_INTERFACE_DATA if_alias_data = { 0,};
SP_DEVICE_INTERFACE_DETAIL_DATA_W *if_detail_data;
DWORD if_detail_data_size;
SP_DEVINFO_DATA devinfo_data = { 0, };
@@ -66,6 +67,13 @@ ks_enumerate_devices (const GUID * category)
if (!success) /* all devices enumerated? */
break;
+ /* Enumerate only capture devices */
+ if_alias_data.cbSize = sizeof (SP_DEVICE_INTERFACE_DATA);
+ success = SetupDiGetDeviceInterfaceAlias (devinfo, &if_data, &KSCATEGORY_CAPTURE,
+ &if_alias_data);
+ if (!success)
+ continue;
+
if_detail_data_size = (MAX_PATH - 1) * sizeof (gunichar2);
if_detail_data = g_malloc0 (if_detail_data_size);
if_detail_data->cbSize = sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA_W);