1a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang/*
2a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * Copyright (C) 2014 The Android Open Source Project
3a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang *
4a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * Licensed under the Apache License, Version 2.0 (the "License");
5a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * you may not use this file except in compliance with the License.
6a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * You may obtain a copy of the License at
7a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang *
8a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang *      http://www.apache.org/licenses/LICENSE-2.0
9a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang *
10a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * Unless required by applicable law or agreed to in writing, software
11a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * distributed under the License is distributed on an "AS IS" BASIS,
12a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * See the License for the specific language governing permissions and
14a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * limitations under the License.
15a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang */
16a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
17a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huangpackage com.android.fmradio;
18a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
19a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huangimport android.os.Bundle;
20a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
21a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang/**
22a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * Activity connect FMRadio service should implements this interface to update
23a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang * ui or status
24a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang */
25a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huangpublic interface FmListener {
26a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    /**
27a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang     * directly call back from service to activity
28a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang     */
29a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // FM RDS station changed
30a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int LISTEN_RDSSTATION_CHANGED = 0x00100010;
31a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
32a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // FM PS information changed
33a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int LISTEN_PS_CHANGED = 0x00100011;
34a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
35a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // FM RT information changed
36a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int LISTEN_RT_CHANGED = 0x00100100;
37a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
38a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // FM Record state changed
39a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int LISTEN_RECORDSTATE_CHANGED = 0x00100101; // 1048833
40a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
41a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // FM record error occur
42a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int LISTEN_RECORDERROR = 0x00100110; // 1048848
43a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
44a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // FM record mode change
45a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int LISTEN_RECORDMODE_CHANGED = 0x00100111; // 4018849
46a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
47a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // FM Record state changed
48a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int LISTEN_SPEAKER_MODE_CHANGED = 0x00101000; // 1052672
49a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
50a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // Bundle keys
516e47fefd026fe63b8d23dea69034e7f5e4c18f5cBenson Huang    String SWITCH_ANTENNA_VALUE = "switch_antenna_value";
52a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String CALLBACK_FLAG = "callback_flag";
536e47fefd026fe63b8d23dea69034e7f5e4c18f5cBenson Huang    String KEY_IS_SWITCH_ANTENNA = "key_is_switch_antenna";
54a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_IS_TUNE = "key_is_tune";
55a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_TUNE_TO_STATION = "key_tune_to_station";
56a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_IS_SEEK = "key_is_seek";
57a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_SEEK_TO_STATION = "key_seek_to_station";
58a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_IS_SCAN = "key_is_scan";
59a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_RDS_STATION = "key_rds_station";
60a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_PS_INFO = "key_ps_info";
61a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_RT_INFO = "key_rt_info";
62a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_STATION_NUM = "key_station_num";
63a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
64a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // Audio focus related
65a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_AUDIOFOCUS_CHANGED = "key_audiofocus_changed";
66a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
67a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // Recording
68a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_RECORDING_STATE = "key_is_recording_state";
69a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_RECORDING_ERROR_TYPE = "key_recording_error_type";
70a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_IS_RECORDING_MODE = "key_is_recording_mode";
71a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
72a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // For change speaker/earphone mode
73a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    String KEY_IS_SPEAKER_MODE = "key_is_speaker_mode";
74a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
75a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    /**
76a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang     * handle message: call back from service to activity
77a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang     */
78a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // Message to handle
79a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_UPDATE_RDS = 1;
80a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_UPDATE_CURRENT_STATION = 2;
81a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_ANTENNA_UNAVAILABE = 3;
826e47fefd026fe63b8d23dea69034e7f5e4c18f5cBenson Huang    int MSGID_SWITCH_ANTENNA = 4;
83a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_SET_RDS_FINISHED = 5;
84a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_SET_CHANNEL_FINISHED = 6;
85a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_SET_MUTE_FINISHED = 7;
86a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // Fm main
87a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_POWERUP_FINISHED = 9;
88a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_POWERDOWN_FINISHED = 10;
89a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_FM_EXIT = 11;
90a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_SCAN_CANCELED = 12;
91a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_SCAN_FINISHED = 13;
92a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_AUDIOFOCUS_FAILED = 14;
93a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_TUNE_FINISHED = 15;
94a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_SEEK_FINISHED = 16;
95a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_ACTIVE_AF_FINISHED = 18;
96a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // Recording
97a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_RECORD_STATE_CHANGED = 19;
98a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_RECORD_ERROR = 20;
99a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_RECORD_MODE_CHANED = 21;
100a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_STARTRECORDING_FINISHED = 22;
101a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_STOPRECORDING_FINISHED = 23;
102a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_STARTPLAYBACK_FINISHED = 24;
103a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_STOPPLAYBACK_FINISHED = 25;
104a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_SAVERECORDING_FINISHED = 26;
105a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // Audio focus related
106a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_AUDIOFOCUS_CHANGED = 30;
107a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
108a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int NOT_AUDIO_FOCUS = 33;
109a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
110a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    // For refresh time
111a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    int MSGID_REFRESH = 101;
112a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang
113a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    /**
114a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang     * Call back method to activity from service
115a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang     */
116a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang    void onCallBack(Bundle bundle);
117a8b6afca0e187c008ba8fdeb670d5f2c13116bedBenson Huang}
118