/* * Copyright (c) 2017 The Android Open Source Project * * 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. */ // Defines an event that is sent via a callback from JNI -> Java. // // See examples in NativeInterface.java package com.android.bluetooth.hfpclient; import android.bluetooth.BluetoothDevice; public class StackEvent { // Type of event that signifies a native event and consumed by state machine public static final int STACK_EVENT = 100; // Event types for STACK_EVENT message (coming from native) public static final int EVENT_TYPE_NONE = 0; public static final int EVENT_TYPE_CONNECTION_STATE_CHANGED = 1; public static final int EVENT_TYPE_AUDIO_STATE_CHANGED = 2; public static final int EVENT_TYPE_VR_STATE_CHANGED = 3; public static final int EVENT_TYPE_NETWORK_STATE = 4; public static final int EVENT_TYPE_ROAMING_STATE = 5; public static final int EVENT_TYPE_NETWORK_SIGNAL = 6; public static final int EVENT_TYPE_BATTERY_LEVEL = 7; public static final int EVENT_TYPE_OPERATOR_NAME = 8; public static final int EVENT_TYPE_CALL = 9; public static final int EVENT_TYPE_CALLSETUP = 10; public static final int EVENT_TYPE_CALLHELD = 11; public static final int EVENT_TYPE_RESP_AND_HOLD = 12; public static final int EVENT_TYPE_CLIP = 13; public static final int EVENT_TYPE_CALL_WAITING = 14; public static final int EVENT_TYPE_CURRENT_CALLS = 15; public static final int EVENT_TYPE_VOLUME_CHANGED = 16; public static final int EVENT_TYPE_CMD_RESULT = 17; public static final int EVENT_TYPE_SUBSCRIBER_INFO = 18; public static final int EVENT_TYPE_IN_BAND_RINGTONE = 19; public static final int EVENT_TYPE_RING_INDICATION = 21; public static final int EVENT_TYPE_UNKNOWN_EVENT = 22; public int type = EVENT_TYPE_NONE; public int valueInt = 0; public int valueInt2 = 0; public int valueInt3 = 0; public int valueInt4 = 0; public String valueString = null; public BluetoothDevice device = null; StackEvent(int type) { this.type = type; } @Override public String toString() { // event dump StringBuilder result = new StringBuilder(); result.append("StackEvent {type:" + eventTypeToString(type)); result.append(", value1:" + valueInt); result.append(", value2:" + valueInt2); result.append(", value3:" + valueInt3); result.append(", value4:" + valueInt4); result.append(", string: \"" + valueString + "\""); result.append(", device:" + device + "}"); return result.toString(); } // for debugging only private static String eventTypeToString(int type) { switch (type) { case EVENT_TYPE_NONE: return "EVENT_TYPE_NONE"; case EVENT_TYPE_CONNECTION_STATE_CHANGED: return "EVENT_TYPE_CONNECTION_STATE_CHANGED"; case EVENT_TYPE_AUDIO_STATE_CHANGED: return "EVENT_TYPE_AUDIO_STATE_CHANGED"; case EVENT_TYPE_NETWORK_STATE: return "EVENT_TYPE_NETWORK_STATE"; case EVENT_TYPE_ROAMING_STATE: return "EVENT_TYPE_ROAMING_STATE"; case EVENT_TYPE_NETWORK_SIGNAL: return "EVENT_TYPE_NETWORK_SIGNAL"; case EVENT_TYPE_BATTERY_LEVEL: return "EVENT_TYPE_BATTERY_LEVEL"; case EVENT_TYPE_OPERATOR_NAME: return "EVENT_TYPE_OPERATOR_NAME"; case EVENT_TYPE_CALL: return "EVENT_TYPE_CALL"; case EVENT_TYPE_CALLSETUP: return "EVENT_TYPE_CALLSETUP"; case EVENT_TYPE_CALLHELD: return "EVENT_TYPE_CALLHELD"; case EVENT_TYPE_CLIP: return "EVENT_TYPE_CLIP"; case EVENT_TYPE_CALL_WAITING: return "EVENT_TYPE_CALL_WAITING"; case EVENT_TYPE_CURRENT_CALLS: return "EVENT_TYPE_CURRENT_CALLS"; case EVENT_TYPE_VOLUME_CHANGED: return "EVENT_TYPE_VOLUME_CHANGED"; case EVENT_TYPE_CMD_RESULT: return "EVENT_TYPE_CMD_RESULT"; case EVENT_TYPE_SUBSCRIBER_INFO: return "EVENT_TYPE_SUBSCRIBER_INFO"; case EVENT_TYPE_RESP_AND_HOLD: return "EVENT_TYPE_RESP_AND_HOLD"; case EVENT_TYPE_RING_INDICATION: return "EVENT_TYPE_RING_INDICATION"; default: return "EVENT_TYPE_UNKNOWN:" + type; } } }