RFC: Adding an enum to identify device types (sink vs. source)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Due to a protocol thinko on the device restore API extension, I forgot
to identify whether the index give was a sink index or a source index.

I therefore need to add a field to differentiate this.

Sadly there does not appear to be an enum for this (unless I cannot find
it) in which case, does anyone have any objections against adding one:


diff --git a/src/pulse/def.h b/src/pulse/def.h
index d14ebca..32176af 100644
--- a/src/pulse/def.h
+++ b/src/pulse/def.h
@@ -124,6 +124,17 @@ typedef enum pa_context_flags {
 #define PA_CONTEXT_NOFAIL PA_CONTEXT_NOFAIL
 /** \endcond */

+/** The type of device we are dealing with */
+typedef enum pa_device_type {
+    PA_DEVICE_SINK,          /**< Playback device */
+    PA_DEVICE_SOURCE         /**< Recording device */
+} pa_device_type_t;
+
+/** \cond fulldocs */
+#define PA_DEVICE_SINK PA_DEVICE_SINK
+#define PA_DEVICE_SOURCE PA_DEVICE_SOURCE
+/** \endcond */
+
 /** The direction of a pa_stream object */
 typedef enum pa_stream_direction {
     PA_STREAM_NODIRECTION,   /**< Invalid direction */



I figure this will be quite useful generally after a 1.0 code cleanup
which will reduce the duplication between sink and source code and
abstracting a lot of it into generic "device" code (while "device" as a
term is not ideal - not all sinks and source are h/w - I'm not sure
there is a better "base" name for sinks/source... suggestions
welcomed!), so this could be useful there too.


Please feel free to point out that this is actually already implemented
in some capacity too :D

Col



-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux