1e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju/*
2e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * Copyright (C) 2016 The Android Open Source Project
3e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju *
4e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * Licensed under the Apache License, Version 2.0 (the "License");
5e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * you may not use this file except in compliance with the License.
6e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * You may obtain a copy of the License at
7e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju *
8e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju *      http://www.apache.org/licenses/LICENSE-2.0
9e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju *
10e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * Unless required by applicable law or agreed to in writing, software
11e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * distributed under the License is distributed on an "AS IS" BASIS,
12e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * See the License for the specific language governing permissions and
14e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * limitations under the License.
15e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju */
16e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju
17e596a7104601705c22790cba73feeda00458e53aHridya Valsarajupackage android.hardware.gnss@1.0;
18e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju
19e596a7104601705c22790cba73feeda00458e53aHridya Valsarajuimport IAGnssCallback;
20e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju
2140d3a9bd8c62714ee58f9363c4456f764aa5a95dAndreas Huber/**
22e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju * Extended interface for AGNSS support.
23e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju */
24e596a7104601705c22790cba73feeda00458e53aHridya Valsarajuinterface IAGnss {
25529331c4cbb1d55c7cc66ddc95efe5f168ee74ddHridya Valsaraju    @export(name="", value_prefix="APN_IP_")
2697ecaa0a72198158b2ba12aba3bc197ba573f069Hridya Valsaraju    enum ApnIpType : uint8_t {
27e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju        INVALID  = 0,
28e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju        IPV4     = 1,
29e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju        IPV6     = 2,
30e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju        IPV4V6   = 3
31e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju    };
32e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju
3340d3a9bd8c62714ee58f9363c4456f764aa5a95dAndreas Huber    /**
34e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * Opens the AGNSS interface and provides the callback routines to the
35e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * implementation of this interface.
36e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     *
37e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @param callback Handle to the AGNSS status callback interface.
38e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     */
39e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju    setCallback(IAGnssCallback callback);
40e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju
4140d3a9bd8c62714ee58f9363c4456f764aa5a95dAndreas Huber    /**
42e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * Notifies that the AGNSS data connection has been closed.
43e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     *
44e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @return success True if the operation is successful.
45e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     */
46e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju    dataConnClosed() generates (bool success);
47e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju
4840d3a9bd8c62714ee58f9363c4456f764aa5a95dAndreas Huber    /**
49e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * Notifies that a data connection is not available for AGNSS.
50e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     *
51e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @return success True if the operation is successful.
52e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     */
53e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju    dataConnFailed() generates (bool success);
54e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju
5540d3a9bd8c62714ee58f9363c4456f764aa5a95dAndreas Huber    /**
56e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * Sets the hostname and port for the AGNSS server.
57e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     *
58e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @param type Specifies if SUPL or C2K.
59e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @param hostname Hostname of the AGNSS server.
60e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @param port Port number associated with the server.
61e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     *
62e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @return success True if the operation is successful.
63e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     */
64e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju    setServer(AGnssType type, string hostname, int32_t port)
65e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju        generates (bool success);
66e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju
6740d3a9bd8c62714ee58f9363c4456f764aa5a95dAndreas Huber    /**
68e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * Notifies that a data connection is available and sets the name of the
69e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * APN, and its IP type, to be used for SUPL connections.
70e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     *
71e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @param apn Access Point Name(follows regular APN naming convention).
72e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @param apnIpType Specifies if SUPL or C2K.
73e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     *
74e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     * @return success True if the operation is successful.
75e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju     */
7697ecaa0a72198158b2ba12aba3bc197ba573f069Hridya Valsaraju    dataConnOpen(string apn, ApnIpType apnIpType)
77e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju        generates (bool success);
78e596a7104601705c22790cba73feeda00458e53aHridya Valsaraju};
79