Adding Anker PowerConf C200 (USB 291a:3369) HDR and horizontal flip.
The patch adds uvcdynctrl/data/291a/anker.xml and needs the usual line in
debian/patches/series.
Description: Add dynamic control definitions for the Anker PowerConf C200
Author: Fredrik Liljegren <fredrik@liljegren.org>
Forwarded: not-needed
Last-Update: 2026-09-10
Index: libwebcam/uvcdynctrl/data/291a/anker.xml
===================================================================
--- /dev/null
+++ libwebcam/uvcdynctrl/data/291a/anker.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<config version="1.0"
+ xmlns="http://www.saicare.com"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.saicare.com uvcconfig.xsd"
+>
+
+ <meta>
+ <version>1.0</version>
+ <author>Fredrik Liljegren</author>
+ <contact>fredrik@liljegren.org</contact>
+ <revision>0.5</revision>
+ <copyright></copyright>
+ <history>
+ Initial import of the Anker PowerConf C200 HDR and horizontal flip controls.
+ </history>
+ </meta>
+
+ <constants>
+
+ <!-- Extension unit GUID as carried by the descriptor (byte-reversed H.264 XU GUID) -->
+ <constant type="guid">
+ <id>UVC_GUID_ANKER_C200_XU</id>
+ <value>41769ea2-04de-e347-8b2b-f4341aff003b</value>
+ </constant>
+
+ <!-- Control selectors -->
+ <constant type="integer">
+ <id>XU_C200_HORIZONTAL_FLIP</id>
+ <value>17</value>
+ </constant>
+ <constant type="integer">
+ <id>XU_C200_HDR</id>
+ <value>19</value>
+ </constant>
+
+ <!-- V4L2 control identifiers -->
+ <constant type="integer">
+ <id>V4L2_CID_C200_HDR</id>
+ <value>0x0A291A02</value>
+ </constant>
+ <constant type="integer">
+ <id>V4L2_CID_C200_HORIZONTAL_FLIP</id>
+ <value>0x0A291A03</value>
+ </constant>
+
+ </constants>
+
+ <devices>
+ <device>
+ <match>
+ <vendor_id>0x291a</vendor_id>
+ <product_id>0x3369</product_id>
+ </match>
+
+ <controls>
+
+ <control id="c200_hdr">
+ <entity>UVC_GUID_ANKER_C200_XU</entity>
+ <selector>XU_C200_HDR</selector>
+ <index>0</index>
+ <size>60</size>
+ <requests>
+ <request>SET_CUR</request>
+ <request>GET_CUR</request>
+ <request>GET_MIN</request>
+ <request>GET_MAX</request>
+ <request>GET_RES</request>
+ <request>GET_DEF</request>
+ </requests>
+ <description>
+ High dynamic range. Always reads back as enabled,
+ whatever the real state.
+ </description>
+ </control>
+
+ <control id="c200_horizontal_flip">
+ <entity>UVC_GUID_ANKER_C200_XU</entity>
+ <selector>XU_C200_HORIZONTAL_FLIP</selector>
+ <index>1</index>
+ <size>60</size>
+ <requests>
+ <request>SET_CUR</request>
+ <request>GET_CUR</request>
+ <request>GET_MIN</request>
+ <request>GET_MAX</request>
+ <request>GET_RES</request>
+ <request>GET_DEF</request>
+ </requests>
+ <description>
+ Mirror the image horizontally. Only takes effect while
+ the camera is streaming.
+ </description>
+ </control>
+
+ </controls>
+ </device>
+ </devices>
+
+ <mappings>
+
+ <mapping>
+ <name>HDR</name>
+ <uvc>
+ <control_ref idref="c200_hdr"/>
+ <size>8</size>
+ <offset>0</offset>
+ <uvc_type>UVC_CTRL_DATA_TYPE_BOOLEAN</uvc_type>
+ </uvc>
+ <v4l2>
+ <id>V4L2_CID_C200_HDR</id>
+ <v4l2_type>V4L2_CTRL_TYPE_BOOLEAN</v4l2_type>
+ </v4l2>
+ </mapping>
+
+ <mapping>
+ <name>Horizontal Flip</name>
+ <uvc>
+ <control_ref idref="c200_horizontal_flip"/>
+ <size>8</size>
+ <offset>0</offset>
+ <uvc_type>UVC_CTRL_DATA_TYPE_BOOLEAN</uvc_type>
+ </uvc>
+ <v4l2>
+ <id>V4L2_CID_C200_HORIZONTAL_FLIP</id>
+ <v4l2_type>V4L2_CTRL_TYPE_BOOLEAN</v4l2_type>
+ </v4l2>
+ </mapping>
+
+ </mappings>
+</config>