GTA04: Added device files with working transport handlers
[hayes-ril.git] / hayes-ril.c
1 /**
2  * This file is part of hayes-ril.
3  *
4  * Copyright (C) 2012 Paul Kocialkowski <contact@paulk.fr>
5  * 
6  * Based on htcgeneric-ril, reference-ril:
7  * Copyright 2006-2011, htcgeneric-ril contributors
8  * Copyright 2006, The Android Open Source Project
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *     http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  */
22
23 #define LOG_TAG "RIL"
24 #include <utils/Log.h>
25 #include <telephony/ril.h>
26
27 #include <hayes-ril.h>
28
29 #define RIL_VERSION_STRING "Hayes RIL"
30
31 struct ril_device *ril_device;
32
33 const char *ril_get_version(void)
34 {
35         return RIL_VERSION_STRING;
36 }
37
38 static const RIL_RadioFunctions ril_ops = {
39         RIL_VERSION,
40         NULL,
41         NULL,
42         NULL,
43         NULL,
44         ril_get_version
45 };
46
47 const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv)
48 {
49         int rc;
50
51         ril_device_register(&ril_device);
52
53         LOGD("Starting %s for device: %s", RIL_VERSION_STRING, ril_device->name);
54
55         rc = ril_device_init(ril_device);
56         if(rc < 0) {
57                 LOGE("Failed to init device!");
58                 ril_device_deinit(ril_device);
59
60                 return NULL;
61         }
62
63         rc = ril_device_recv_thread_start(ril_device);
64         if(rc < 0) {
65                 LOGE("Failed to start device thread!");
66                 ril_device_deinit(ril_device);
67
68                 return NULL;
69         }
70
71         LOGD("Initialization complete");
72
73         return &ril_ops;
74 }