1af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock/*
2af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * Copyright (C) 2014 The Android Open Source Project
3af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock *
4af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * Licensed under the Apache License, Version 2.0 (the "License");
5af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * you may not use this file except in compliance with the License.
6af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * You may obtain a copy of the License at
7af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock *
8af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock *      http://www.apache.org/licenses/LICENSE-2.0
9af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock *
10af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * Unless required by applicable law or agreed to in writing, software
11af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * distributed under the License is distributed on an "AS IS" BASIS,
12af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * See the License for the specific language governing permissions and
14af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * limitations under the License.
15af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock */
16af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock
17af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlockpackage com.android.systemui.statusbar.policy;
18af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock
191e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlockimport java.util.Set;
201e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock
21af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlockpublic interface CastController {
22af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock    void addCallback(Callback callback);
23af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock    void removeCallback(Callback callback);
24af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock    void setDiscovering(boolean request);
25af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock    void setCurrentUserId(int currentUserId);
261e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock    Set<CastDevice> getCastDevices();
271e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock    void startCasting(CastDevice device);
2878b8c8fbde12b214314cc2ab2644350b5d5189a5John Spurlock    void stopCasting(CastDevice device);
29af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock
30af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock    public interface Callback {
311e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        void onCastDevicesChanged();
321e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock    }
331e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock
341e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock    public static final class CastDevice {
351e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        public static final int STATE_DISCONNECTED = 0;
361e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        public static final int STATE_CONNECTING = 1;
371e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        public static final int STATE_CONNECTED = 2;
381e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock
391e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        public String id;
401e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        public String name;
411e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        public String description;
421e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        public int state = STATE_DISCONNECTED;
431e6eb17a22056529601c8e413c2da0541d59d93bJohn Spurlock        public Object tag;
44af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock    }
45af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock}
46