This just allocates the structre and creates the RIL connection. This is per audio_device structure to make sure we to not run into issues with audioserver threading. Change-Id: I42e1b7ae57579f39c5f76566ef5b67d4e2c13e3ftirimbino
parent
bc52af5471
commit
41c9f3d2bc
@ -0,0 +1,56 @@ |
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 Christopher N. Hesse <raymanfx@gmail.com> |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
#define LOG_TAG "audio_hw_voice" |
||||||
|
#define LOG_NDEBUG 0 |
||||||
|
/*#define VERY_VERY_VERBOSE_LOGGING*/ |
||||||
|
#ifdef VERY_VERY_VERBOSE_LOGGING |
||||||
|
#define ALOGVV ALOGV |
||||||
|
#else |
||||||
|
#define ALOGVV(a...) do { } while(0) |
||||||
|
#endif |
||||||
|
|
||||||
|
#include <stdlib.h> |
||||||
|
#include <pthread.h> |
||||||
|
|
||||||
|
#include "audio_hw.h" |
||||||
|
#include "voice.h" |
||||||
|
|
||||||
|
struct voice_session *voice_session_init(void) |
||||||
|
{ |
||||||
|
struct voice_session *session; |
||||||
|
int ret; |
||||||
|
|
||||||
|
session = calloc(1, sizeof(struct voice_session)); |
||||||
|
if (session == NULL) { |
||||||
|
return NULL; |
||||||
|
} |
||||||
|
|
||||||
|
/* Do this as the last step so we do not have to close it on error */ |
||||||
|
ret = ril_open(&session->ril); |
||||||
|
if (ret != 0) { |
||||||
|
free(session); |
||||||
|
return NULL; |
||||||
|
} |
||||||
|
|
||||||
|
return session; |
||||||
|
} |
||||||
|
|
||||||
|
void voice_session_deinit(struct voice_session *session) |
||||||
|
{ |
||||||
|
ril_close(&session->ril); |
||||||
|
free(session); |
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 Christopher N. Hesse <raymanfx@gmail.com> |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef VOICE_CALL_H |
||||||
|
#define VOICE_CALL_H |
||||||
|
|
||||||
|
#include "ril_interface.h" |
||||||
|
|
||||||
|
struct voice_session { |
||||||
|
struct ril_handle ril; |
||||||
|
|
||||||
|
struct pcm *pcm_voice_rx; |
||||||
|
struct pcm *pcm_voice_tx; |
||||||
|
|
||||||
|
bool wb_amr; |
||||||
|
bool two_mic_control; |
||||||
|
bool two_mic_disabled; |
||||||
|
|
||||||
|
/* from uc_info */ |
||||||
|
audio_devices_t out_device; |
||||||
|
}; |
||||||
|
|
||||||
|
struct voice_session *voice_session_init(void); |
||||||
|
void voice_session_deinit(struct voice_session *s); |
||||||
|
|
||||||
|
#endif /* VOICE_CALL_H */ |
Loading…
Reference in new issue