[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/mer-hybris/pulseaudio-modules-droid.git</param>
<param name="branch">master</param>
- <param name="revision">b4414fb5a17e9c9958b0b1ebcc980c3577e17789</param>
+ <param name="revision">09c3cca84ee92b4ebb8bbafc027b10bee43e0e7f</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/README
^
|
@@ -19,21 +19,27 @@
Headers for defining devices and strings for different droid versions are in
src/common/droid-util-audio.h (legacy headers for Jolla 1 in droid-util-41qc.h).
-When new devices with relevant new enums appear, add enum check to configure.ac,
-for example: (the CC_CHECK_DROID_ENUM m4 macro will create define HAVE_ENUM_FOO
-if the enum FOO exists in HAL audio.h)
+When new devices with relevant new enums appear, add enum check to configure.ac.
+CC_CHECK_DROID_ENUM macro will create macros HAVE_ENUM_FOO, STRING_ENTRY_IF_FOO
+and FANCY_ENTRY_IF_FOO if enum FOO exists in HAL audio.h.
+
+For example:
+
+# configure.ac:
CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_DEVICE_OUT_IP])
+ CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_DEVICE_OUT_OTHER_NEW])
-and then in droid-util-audio.h add the enum to proper tables with ifdefs:
+# and then in droid-util-audio.h add macros to proper tables:
/* string_conversion_table_output_device[] */
- #ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_IP
- STRING_ENTRY( AUDIO_DEVICE_OUT_IP ),
- #endif
+ STRING_ENTRY_IF_OUT_IP
+ STRING_ENTRY_IF_OUT_OTHER_NEW
/* string_conversion_table_output_device_fancy[] */
- #ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_IP
- { AUDIO_DEVICE_OUT_IP, "output-ip" },
- #endif
+ FANCY_ENTRY_IF_OUT_IP("output-ip")
+ FANCY_ENTRY_IF_OUT_OTHER_NEW("output-other_new")
+
+In addition to the above macros there are also now defines
+HAVE_ENUM_AUDIO_DEVICE_OUT_IP and HAVE_ENUM_AUDIO_DEVICE_OUT_OTHER_NEW.
The purpose of droid-modules is to "replace AudioFlinger". Many hardware
adaptations use ALSA as the kernel interface, but there is no saying that
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/configure.ac
^
|
@@ -269,8 +269,8 @@
CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_CHANNEL_OUT_5POINT1_BACK])
CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_CHANNEL_OUT_5POINT1_SIDE])
CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_CHANNEL_IN_VOICE_CALL_MONO])
-CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_CHANNEL_IN_VOICE_UPLINK])
-CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_CHANNEL_IN_VOICE_DNLINK])
+CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO])
+CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO])
# Formats
CC_CHECK_DROID_ENUM([${DROIDHEADERS_CFLAGS}], [AUDIO_FORMAT_PCM_OFFLOAD])
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/m4/check_droid_enum.m4
^
|
@@ -17,5 +17,10 @@
AC_MSG_RESULT([$cc_check_droid_enum])
if test x"$cc_check_droid_enum" = x"yes"; then
AC_DEFINE(HAVE_ENUM_$2,,[define if enum $2 is found in headers])
+ AC_DEFINE(STRING_ENTRY_IF_$2,[STRING_ENTRY($2),],[string entry for enum $2])
+ AC_DEFINE(FANCY_ENTRY_IF_$2(n),[{$2, n},],[fancy entry for enum $2])
+else
+ AC_DEFINE(STRING_ENTRY_IF_$2,,[string entry for enum $2])
+ AC_DEFINE(FANCY_ENTRY_IF_$2(n),,[fancy entry for enum $2])
fi
])
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/src/common/config-parser-xml.c
^
|
@@ -535,7 +535,7 @@
element = xml_string_dup(element_name, -1);
- if (pa_streq(data->current->name, element)) {
+ if (pa_safe_streq(data->current->name, element)) {
ELEMENT_STACK_POP(data->stack, data->current);
if (pa_streq(element, ELEMENT_mixPort))
@@ -554,7 +554,7 @@
int whitespace = 0;
char *str = NULL;
- if (len <= 0)
+ if (len <= 0 || !data->current->char_data)
goto done;
str = xml_string_dup(s, len);
@@ -563,8 +563,7 @@
if (whitespace == len)
goto done;
- if (data->current->char_data)
- data->current->char_data(data, str);
+ data->current->char_data(data, str);
done:
pa_xfree(str);
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/src/common/droid-util-audio.h
^
|
@@ -140,45 +140,19 @@
/* Devices which may or may not be defined for all devices,
* update configure.ac CC_CHECK_DROID_ENUM list if you encounter new ones. */
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_HDMI
- STRING_ENTRY( AUDIO_DEVICE_OUT_HDMI ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_HDMI_ARC
- STRING_ENTRY( AUDIO_DEVICE_OUT_HDMI_ARC ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_TELEPHONY_TX
- STRING_ENTRY( AUDIO_DEVICE_OUT_TELEPHONY_TX ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_LINE
- STRING_ENTRY( AUDIO_DEVICE_OUT_LINE ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_SPDIF
- STRING_ENTRY( AUDIO_DEVICE_OUT_SPDIF ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_AUX_LINE
- STRING_ENTRY( AUDIO_DEVICE_OUT_AUX_LINE ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_SPEAKER_SAFE
- STRING_ENTRY( AUDIO_DEVICE_OUT_SPEAKER_SAFE ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_FM
- STRING_ENTRY( AUDIO_DEVICE_OUT_FM ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_FM_TX
- STRING_ENTRY( AUDIO_DEVICE_OUT_FM_TX ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_ANC_HEADSET
- STRING_ENTRY( AUDIO_DEVICE_OUT_ANC_HEADSET ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_ANC_HEADPHONE
- STRING_ENTRY( AUDIO_DEVICE_OUT_ANC_HEADPHONE ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_PROXY
- STRING_ENTRY( AUDIO_DEVICE_OUT_PROXY ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_IP
- STRING_ENTRY( AUDIO_DEVICE_OUT_IP ),
-#endif
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_HDMI
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_HDMI_ARC
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_TELEPHONY_TX
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_LINE
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_SPDIF
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_AUX_LINE
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_SPEAKER_SAFE
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_FM
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_FM_TX
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_ANC_HEADSET
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_ANC_HEADPHONE
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_PROXY
+ STRING_ENTRY_IF_AUDIO_DEVICE_OUT_IP
/* Combination entries consisting of multiple devices defined above.
* These don't require counterpart in string_conversion_table_output_device_fancy. */
@@ -212,45 +186,19 @@
{ AUDIO_DEVICE_OUT_DEFAULT, "output-default" },
/* Devices which may or may not be defined for all devices, */
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_HDMI
- { AUDIO_DEVICE_OUT_HDMI, "output-hdmi" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_HDMI_ARC
- { AUDIO_DEVICE_OUT_HDMI_ARC, "output-hdmi_arc" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_TELEPHONY_TX
- { AUDIO_DEVICE_OUT_TELEPHONY_TX, "output-telephony_tx" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_LINE
- { AUDIO_DEVICE_OUT_LINE, "output-line" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_SPDIF
- { AUDIO_DEVICE_OUT_SPDIF, "output-spdif" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_AUX_LINE
- { AUDIO_DEVICE_OUT_AUX_LINE, "output-aux_line" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_SPEAKER_SAFE
- { AUDIO_DEVICE_OUT_SPEAKER_SAFE, "output-speaker_safe" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_FM
- { AUDIO_DEVICE_OUT_FM, "output-fm" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_FM_TX
- { AUDIO_DEVICE_OUT_FM_TX, "output-fm_tx" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_ANC_HEADSET
- { AUDIO_DEVICE_OUT_ANC_HEADSET, "output-anc_headset" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_ANC_HEADPHONE
- { AUDIO_DEVICE_OUT_ANC_HEADPHONE, "output-anc_headphone" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_PROXY
- { AUDIO_DEVICE_OUT_PROXY, "output-proxy" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_OUT_IP
- { AUDIO_DEVICE_OUT_IP, "output-ip" },
-#endif
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_HDMI ( "output-hdmi" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_HDMI_ARC ( "output-hdmi_arc" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_TELEPHONY_TX ( "output-telephony_tx" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_LINE ( "output-line" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_SPDIF ( "output-spdif" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_AUX_LINE ( "output-aux_line" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_SPEAKER_SAFE ( "output-speaker_safe" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_FM ( "output-fm" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_FM_TX ( "output-fm_tx" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_ANC_HEADSET ( "output-and_headset" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_ANC_HEADPHONE ( "output-anc_headphone" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_PROXY ( "output-proxy" )
+ FANCY_ENTRY_IF_AUDIO_DEVICE_OUT_IP ( "output-ip" )
{ 0, NULL }
};
@@ -276,42 +224,18 @@
/* Devices which may or may not be defined for all devices,
* update configure.ac CC_CHECK_DROID_ENUM list if you encounter new ones. */
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_HDMI
- STRING_ENTRY( AUDIO_DEVICE_IN_HDMI ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_TELEPHONY_RX
- STRING_ENTRY( AUDIO_DEVICE_IN_TELEPHONY_RX ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_FM_TUNER
- STRING_ENTRY( AUDIO_DEVICE_IN_FM_TUNER ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_TV_TUNER
- STRING_ENTRY( AUDIO_DEVICE_IN_TV_TUNER ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_LINE
- STRING_ENTRY( AUDIO_DEVICE_IN_LINE ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_SPDIF
- STRING_ENTRY( AUDIO_DEVICE_IN_SPDIF ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_BLUETOOTH_A2DP
- STRING_ENTRY( AUDIO_DEVICE_IN_BLUETOOTH_A2DP ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_LOOPBACK
- STRING_ENTRY( AUDIO_DEVICE_IN_LOOPBACK ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_PROXY
- STRING_ENTRY( AUDIO_DEVICE_IN_PROXY ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_FM_RX
- STRING_ENTRY( AUDIO_DEVICE_IN_FM_RX ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_FM_RX_A2DP
- STRING_ENTRY( AUDIO_DEVICE_IN_FM_RX_A2DP ),
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_IP
- STRING_ENTRY( AUDIO_DEVICE_IN_IP ),
-#endif
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_HDMI
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_TELEPHONY_RX
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_FM_TUNER
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_TV_TUNER
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_LINE
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_SPDIF
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_BLUETOOTH_A2DP
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_LOOPBACK
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_PROXY
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_FM_RX
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_FM_RX_A2DP
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_IP
#ifdef DROID_AUDIO_HAL_SECONDARY_MIC
STRING_ENTRY( AUDIO_DEVICE_IN_SECONDARY_MIC ),
@@ -321,9 +245,7 @@
* These don't require counterpart in string_conversion_table_input_device_fancy. */
STRING_ENTRY( AUDIO_DEVICE_IN_ALL ),
STRING_ENTRY( AUDIO_DEVICE_IN_ALL_SCO ),
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_ALL_USB
- STRING_ENTRY( AUDIO_DEVICE_IN_ALL_USB ),
-#endif
+ STRING_ENTRY_IF_AUDIO_DEVICE_IN_ALL_USB
{ 0, NULL }
};
@@ -345,42 +267,18 @@
{ AUDIO_DEVICE_IN_DEFAULT, "input-default" },
/* Devices which may or may not be defined for all devices, */
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_HDMI
- { AUDIO_DEVICE_IN_HDMI, "input-hdmi" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_TELEPHONY_RX
- { AUDIO_DEVICE_IN_TELEPHONY_RX, "input-telephony_rx" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_FM_TUNER
- { AUDIO_DEVICE_IN_FM_TUNER, "input-fm_tuner" },
-#endif
-#ifdef HAVE_ENUM_AUDIO_DEVICE_IN_TV_TUNER
- { AUDIO_DEVICE_IN_TV_TUNER, "input-tv_tuner" },
-#endif
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/src/droid/droid-sink.c
^
|
@@ -1328,9 +1328,6 @@
pa_droid_config_free(config);
pa_xfree(thread_name);
- if (config)
- pa_xfree(config);
-
if (u)
userdata_free(u);
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/src/droid/droid-source.c
^
|
@@ -157,7 +157,7 @@
if (!u->stream_valid) {
p = pa_memblock_acquire(chunk.memblock);
chunk.length = pa_memblock_get_length(chunk.memblock);
- memset(p, 0, chunk.length);
+ pa_silence_memory(p, chunk.length, &u->source->sample_spec);
pa_source_post(u->source, &chunk);
pa_memblock_release(chunk.memblock);
goto end;
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/src/droid/module-droid-card.c
^
|
@@ -138,8 +138,8 @@
typedef bool (*virtual_profile_event_cb)(struct userdata *u, pa_droid_profile *p, bool enabling);
struct virtual_profile {
+ bool enabled;
pa_card_profile *parent;
- pa_card_profile *extension;
virtual_profile_event_cb event_cb;
};
@@ -156,14 +156,15 @@
pa_droid_hw_module *hw_module;
pa_droid_card_data card_data;
- pa_droid_profile *old_profile;
+ pa_card_profile *real_profile;
pa_modargs *modargs;
pa_card *card;
};
struct profile_data {
- pa_droid_profile *profile;
+ pa_droid_profile *droid_profile;
+ pa_card_profile *card_profile;
audio_mode_t mode;
bool virtual_profile;
/* Variables for virtual profiles: */
@@ -177,10 +178,12 @@
#define AUDIO_PARAMETER_KEY_CALL_STATE "call_state"
/* From hal/voice_extn/voice_extn.c */
-#define VOICE2_VSID 0x10DC1000
-#define VOLTE_VSID 0x10C02000
-#define QCHAT_VSID 0x10803000
-#define VOWLAN_VSID 0x10002000
+#define VOICE2_VSID (0x10DC1000)
+#define VOLTE_VSID (0x10C02000)
+#define QCHAT_VSID (0x10803000)
+#define VOWLAN_VSID (0x10002000)
+#define VOICEMMODE1_VSID (0x11C05000)
+#define VOICEMMODE2_VSID (0x11DC5000)
/* From hal/voice.h */
#define BASE_CALL_STATE 1
@@ -189,22 +192,28 @@
#define VOICE_VSID 0x10C01000
/* For virtual profiles */
-#define VOICE_SESSION_VOICE1_PROFILE_NAME "voicecall-voice1"
-#define VOICE_SESSION_VOICE1_PROFILE_DESC "Call mode, default to voice 1 vsid"
-#define VOICE_SESSION_VOICE2_PROFILE_NAME "voicecall-voice2"
-#define VOICE_SESSION_VOICE2_PROFILE_DESC "Call mode, default to voice 2 vsid"
-#define VOICE_SESSION_VOLTE_PROFILE_NAME "voicecall-volte"
-#define VOICE_SESSION_VOLTE_PROFILE_DESC "Call mode, default to volte vsid"
-#define VOICE_SESSION_QCHAT_PROFILE_NAME "voicecall-qchat"
-#define VOICE_SESSION_QCHAT_PROFILE_DESC "Call mode, default to qchat vsid"
-#define VOICE_SESSION_VOWLAN_PROFILE_NAME "voicecall-vowlan"
-#define VOICE_SESSION_VOWLAN_PROFILE_DESC "Call mode, default to vowlan vsid"
+#define VOICE_SESSION_VOICE1_PROFILE_NAME "voicecall-voice1"
+#define VOICE_SESSION_VOICE1_PROFILE_DESC "Call mode, default to voice 1 vsid"
+#define VOICE_SESSION_VOICE2_PROFILE_NAME "voicecall-voice2"
+#define VOICE_SESSION_VOICE2_PROFILE_DESC "Call mode, default to voice 2 vsid"
+#define VOICE_SESSION_VOLTE_PROFILE_NAME "voicecall-volte"
+#define VOICE_SESSION_VOLTE_PROFILE_DESC "Call mode, default to volte vsid"
+#define VOICE_SESSION_QCHAT_PROFILE_NAME "voicecall-qchat"
+#define VOICE_SESSION_QCHAT_PROFILE_DESC "Call mode, default to qchat vsid"
+#define VOICE_SESSION_VOWLAN_PROFILE_NAME "voicecall-vowlan"
+#define VOICE_SESSION_VOWLAN_PROFILE_DESC "Call mode, default to vowlan vsid"
+#define VOICE_SESSION_VOICEMMODE1_PROFILE_NAME "voicecall-voicemmode1"
+#define VOICE_SESSION_VOICEMMODE1_PROFILE_DESC "Call mode, default to voicemmode1 vsid"
+#define VOICE_SESSION_VOICEMMODE2_PROFILE_NAME "voicecall-voicemmode2"
+#define VOICE_SESSION_VOICEMMODE2_PROFILE_DESC "Call mode, default to voicemmode2 vsid"
static bool voicecall_voice1_vsid_profile_event_cb(struct userdata *u, pa_droid_profile *p, bool enabling);
static bool voicecall_voice2_vsid_profile_event_cb(struct userdata *u, pa_droid_profile *p, bool enabling);
static bool voicecall_volte_vsid_profile_event_cb(struct userdata *u, pa_droid_profile *p, bool enabling);
static bool voicecall_qchat_vsid_profile_event_cb(struct userdata *u, pa_droid_profile *p, bool enabling);
static bool voicecall_vowlan_vsid_profile_event_cb(struct userdata *u, pa_droid_profile *p, bool enabling);
+static bool voicecall_voicemmode1_vsid_profile_event_cb(struct userdata *u, pa_droid_profile *p, bool enabling);
+static bool voicecall_voicemmode2_vsid_profile_event_cb(struct userdata *u, pa_droid_profile *p, bool enabling);
#endif /* DROID_AUDIO_HAL_USE_VSID */
@@ -216,7 +225,8 @@
cp->available = PA_AVAILABLE_YES;
d = PA_CARD_PROFILE_DATA(cp);
- d->profile = NULL;
+ d->droid_profile = NULL;
+ d->card_profile = cp;
pa_hashmap_put(profiles, cp->name, cp);
}
@@ -246,17 +256,12 @@
cp = pa_card_profile_new(ap->name, ap->description, sizeof(struct profile_data));
cp->available = available;
d = PA_CARD_PROFILE_DATA(cp);
- d->profile = ap;
+ d->droid_profile = ap;
+ d->card_profile = cp;
d->virtual_profile = true;
d->mode = audio_mode;
d->virtual.event_cb = event_cb;
- d->virtual.extension = NULL;
- if (extension_to) {
- ext = PA_CARD_PROFILE_DATA(extension_to);
- ext->virtual.extension = cp;
- d->virtual.parent = extension_to;
- } else
- d->virtual.parent = NULL;
+ d->virtual.parent = extension_to;
pa_hashmap_put(profiles, cp->name, cp);
@@ -330,7 +335,8 @@
cp->max_source_channels = max_channels;
d = PA_CARD_PROFILE_DATA(cp);
- d->profile = ap;
+ d->droid_profile = ap;
+ d->card_profile = cp;
d->virtual_profile = false;
d->mode = AUDIO_MODE_NORMAL;
@@ -361,14 +367,14 @@
d = PA_CARD_PROFILE_DATA(u->card->active_profile);
- if (d->profile && pa_idxset_size(d->profile->output_mappings) > 0) {
- PA_IDXSET_FOREACH(am, d->profile->output_mappings, idx) {
+ if (d->droid_profile && pa_idxset_size(d->droid_profile->output_mappings) > 0) {
+ PA_IDXSET_FOREACH(am, d->droid_profile->output_mappings, idx) {
am->sink = pa_droid_sink_new(u->module, u->modargs, __FILE__, &u->card_data, 0, am, u->card);
}
}
- if (d->profile && pa_idxset_size(d->profile->input_mappings) > 0) {
- PA_IDXSET_FOREACH(am, d->profile->input_mappings, idx) {
+ if (d->droid_profile && pa_idxset_size(d->droid_profile->input_mappings) > 0) {
+ PA_IDXSET_FOREACH(am, d->droid_profile->input_mappings, idx) {
am->source = pa_droid_source_new(u->module, u->modargs, __FILE__, (audio_devices_t) 0, &u->card_data, am, u->card);
}
}
@@ -430,38 +436,39 @@
};
}
+static pa_droid_profile *card_get_droid_profile(pa_card_profile *cp) {
+ struct profile_data *pd;
+
+ pa_assert(cp);
+
+ pd = PA_CARD_PROFILE_DATA(cp);
+ return pd->droid_profile;
+}
+
static bool voicecall_profile_event_cb(struct userdata *u, pa_droid_profile *p, bool enabling) {
+ pa_droid_profile *dp = NULL;
pa_card_profile *cp = NULL;
pa_droid_mapping *am_output;
pa_assert(u);
pa_assert(p);
- pa_assert(u->old_profile);
+ pa_assert(u->real_profile);
- if (!(am_output = pa_droid_idxset_get_primary(u->old_profile->output_mappings))) {
+ dp = card_get_droid_profile(u->real_profile);
+ if (!(am_output = pa_droid_idxset_get_primary(dp->output_mappings))) {
pa_log("Active profile doesn't have primary output device.");
return false;
}
- if (pa_droid_idxset_mapping_with_device(u->old_profile->input_mappings,
- AUDIO_DEVICE_IN_VOICE_CALL))
- cp = pa_hashmap_get(u->card->profiles, VOICE_RECORD_PROFILE_NAME);
-
/* call mode specialities */
if (enabling) {
pa_droid_sink_set_voice_control(am_output->sink, true);
- if (cp && cp->available == PA_AVAILABLE_NO) {
- pa_log_debug("Enable " VOICE_RECORD_PROFILE_NAME " profile.");
- pa_card_profile_set_available(cp, PA_AVAILABLE_YES);
- }
+
if (pa_droid_quirk(u->hw_module, QUIRK_REALCALL))
pa_droid_set_parameters(u->hw_module, VENDOR_EXT_REALCALL_ON);
} else {
pa_droid_sink_set_voice_control(am_output->sink, false);
- if (cp && cp->available == PA_AVAILABLE_YES) {
- pa_log_debug("Disable " VOICE_RECORD_PROFILE_NAME " profile.");
- pa_card_profile_set_available(cp, PA_AVAILABLE_NO);
- }
+
if (pa_droid_quirk(u->hw_module, QUIRK_REALCALL))
pa_droid_set_parameters(u->hw_module, VENDOR_EXT_REALCALL_OFF);
}
@@ -474,8 +481,6 @@
{
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/src/droid/module-droid-sink.c
^
|
@@ -50,6 +50,7 @@
PA_MODULE_VERSION(PACKAGE_VERSION);
static const char* const valid_modargs[] = {
+ "config",
"rate",
"format",
"channels",
|
[-]
[+]
|
Changed |
_service:tar_git:pulseaudio-modules-droid-12.2.79.tar.bz2/src/droid/module-droid-source.c
^
|
@@ -49,6 +49,7 @@
PA_MODULE_VERSION(PACKAGE_VERSION);
static const char* const valid_modargs[] = {
+ "config",
"rate",
"format",
"channels",
|