[alsa-devel] [PATCH 7/7] Support mic control caching. Move an enum out of public api.
linux at audioscience.com
linux at audioscience.com
Tue Mar 23 09:14:27 CET 2010
From: Eliot Blennerhassett <eblennerhassett at audioscience.com>
Signed-off-by: Eliot Blennerhassett <eblennerhassett at audioscience.com>
---
pci/asihpi/hpi.h | 8 +-------
pci/asihpi/hpi_internal.h | 11 +++++++++++
pci/asihpi/hpicmn.c | 10 ++++++++++
3 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/pci/asihpi/hpi.h b/pci/asihpi/hpi.h
index 71ddd61..b89a557 100644
--- a/pci/asihpi/hpi.h
+++ b/pci/asihpi/hpi.h
@@ -49,7 +49,7 @@ i.e 3.05.02 is a development version
#define HPI_VER_RELEASE(v) ((int)(v & 0xFF))
/* Use single digits for versions less that 10 to avoid octal. */
-#define HPI_VER HPI_VERSION_CONSTRUCTOR(4L, 3, 10)
+#define HPI_VER HPI_VERSION_CONSTRUCTOR(4L, 3, 13)
/* Library version as documented in hpi-api-versions.txt */
#define HPI_LIB_VER HPI_VERSION_CONSTRUCTOR(9, 0, 0)
@@ -178,12 +178,6 @@ The range is +1.0 to -1.0, which corresponds to digital fullscale.
HPI_FORMAT_UNDEFINED = 0xffff
};
-/******************************************* bus types */
-enum HPI_BUSES {
- HPI_BUS_ISAPNP = 1,
- HPI_BUS_PCI = 2,
- HPI_BUS_USB = 3
-};
/******************************************* in/out Stream states */
/*******************************************/
/** Stream States
diff --git a/pci/asihpi/hpi_internal.h b/pci/asihpi/hpi_internal.h
index 77b85e4..6ea091f 100644
--- a/pci/asihpi/hpi_internal.h
+++ b/pci/asihpi/hpi_internal.h
@@ -174,6 +174,14 @@ struct hpi_entity {
#pragma warning(pop)
#endif
+/******************************************* bus types */
+enum HPI_BUSES {
+ HPI_BUS_ISAPNP = 1,
+ HPI_BUS_PCI = 2,
+ HPI_BUS_USB = 3,
+ HPI_BUS_NET = 4
+};
+
/******************************************* CONTROL ATTRIBUTES ****/
/* (in order of control type ID */
@@ -1583,6 +1591,9 @@ struct hpi_control_cache_single {
u16 wSourceIndex;
u32 dwSampleRate;
} clk;
+ struct { /* microphone control */
+ u16 wState;
+ } phantom_power;
struct { /* generic control */
u32 dw1;
u32 dw2;
diff --git a/pci/asihpi/hpicmn.c b/pci/asihpi/hpicmn.c
index 4d4a796..012fd0f 100644
--- a/pci/asihpi/hpicmn.c
+++ b/pci/asihpi/hpicmn.c
@@ -414,6 +414,12 @@ short HpiCheckControlCache(
} else
found = 0;
break;
+ case HPI_CONTROL_MICROPHONE:
+ if (phm->u.c.wAttribute == HPI_MICROPHONE_PHANTOM_POWER) {
+ phr->u.c.dwParam1 = pC->u.phantom_power.wState;
+ } else
+ found = 0;
+ break;
case HPI_CONTROL_SAMPLECLOCK:
if (phm->u.c.wAttribute == HPI_SAMPLECLOCK_SOURCE)
phr->u.c.dwParam1 = pC->u.clk.wSource;
@@ -562,6 +568,10 @@ void HpiSyncControlCache(
pC->u.v.anLog[1] = phr->u.c.anLogValue[1];
}
break;
+ case HPI_CONTROL_MICROPHONE:
+ if (phm->u.c.wAttribute == HPI_MICROPHONE_PHANTOM_POWER)
+ pC->u.phantom_power.wState = (u16)phm->u.c.dwParam1;
+ break;
case HPI_CONTROL_AESEBU_TRANSMITTER:
if (phr->wError)
return;
--
1.7.0.rc0.8.ge3f67d
More information about the Alsa-devel
mailing list