• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #define LOG_TAG "VehicleNetworkAudioHelper-C"
18 
19 #include <VehicleNetwork.h>
20 #include <vehicle-internal.h>
21 #include <utils/SystemClock.h>
22 #include "VehicleNetworkAudioHelper.h"
23 #include "vehicle-network-audio-helper-for-c.h"
24 
25 extern "C" {
26 
vehicle_network_audio_helper_create(nsecs_t timeout)27 vehicle_network_audio_helper_t* vehicle_network_audio_helper_create(nsecs_t timeout) {
28     android::status_t r;
29     android::VehicleNetworkAudioHelper* helperObj = new android::VehicleNetworkAudioHelper(timeout);
30     if (helperObj == NULL) {
31         return NULL;
32     }
33     vehicle_network_audio_helper_t *helper = new vehicle_network_audio_helper_t();
34     if (helper == NULL) {
35         goto error;
36     }
37     r = helperObj->init();
38     if (r != android::NO_ERROR) {
39         goto error;
40     }
41     helper->obj = helperObj;
42     return helper;
43 
44 error:
45     delete helperObj;
46     delete helper;
47     return NULL;
48 }
49 
vehicle_network_audio_helper_create_with_default_timeout()50 vehicle_network_audio_helper_t* vehicle_network_audio_helper_create_with_default_timeout() {
51     return vehicle_network_audio_helper_create(FOCUS_WAIT_DEFAULT_TIMEOUT_NS);
52 }
53 
vehicle_network_audio_helper_destroy(vehicle_network_audio_helper_t * helper)54 void vehicle_network_audio_helper_destroy(vehicle_network_audio_helper_t* helper) {
55     android::VehicleNetworkAudioHelper* helperObj =
56             (android::VehicleNetworkAudioHelper*) helper->obj;
57     helperObj->release();
58     delete helperObj;
59     delete helper;
60 }
61 
vehicle_network_audio_helper_notify_stream_started(vehicle_network_audio_helper_t * helper,int32_t stream)62 void vehicle_network_audio_helper_notify_stream_started(vehicle_network_audio_helper_t* helper,
63         int32_t stream) {
64     android::VehicleNetworkAudioHelper* helperObj =
65             (android::VehicleNetworkAudioHelper*) helper->obj;
66     helperObj->notifyStreamStarted(stream);
67 }
68 
vehicle_network_audio_helper_notify_stream_stopped(vehicle_network_audio_helper_t * helper,int32_t stream)69 void vehicle_network_audio_helper_notify_stream_stopped(vehicle_network_audio_helper_t* helper,
70         int32_t stream) {
71     android::VehicleNetworkAudioHelper* helperObj =
72             (android::VehicleNetworkAudioHelper*) helper->obj;
73     helperObj->notifyStreamStopped(stream);
74 }
75 
vehicle_network_audio_helper_get_stream_focus_state(vehicle_network_audio_helper_t * helper,int32_t stream)76 int vehicle_network_audio_helper_get_stream_focus_state(
77         vehicle_network_audio_helper_t* helper, int32_t stream) {
78     android::VehicleNetworkAudioHelper* helperObj =
79             (android::VehicleNetworkAudioHelper*) helper->obj;
80     return helperObj->getStreamFocusState(stream);
81 }
82 
vehicle_network_audio_helper_wait_for_stream_focus(vehicle_network_audio_helper_t * helper,int32_t stream,nsecs_t waitTimeNs)83 int vehicle_network_audio_helper_wait_for_stream_focus(vehicle_network_audio_helper_t* helper,
84         int32_t stream, nsecs_t waitTimeNs) {
85     android::VehicleNetworkAudioHelper* helperObj =
86             (android::VehicleNetworkAudioHelper*) helper->obj;
87     if (helperObj->waitForStreamFocus(stream, waitTimeNs)) {
88         return 1;
89     }
90     return 0;
91 }
92 
93 }
94