Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4a75367 authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

Move AudioDevice* from android.media -> a.m.audio.common SAIDL

Bug: 198812639
Test: m
Test: atest audio_aidl_conversion_tests
Change-Id: I9193593bf17634e9bf05dc7cf56ac826c4755443
parent 9d958228
Loading
Loading
Loading
Loading
+75 −73
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ using media::audio::common::AudioChannelLayout;
using media::audio::common::AudioConfig;
using media::audio::common::AudioConfigBase;
using media::audio::common::AudioContentType;
using media::audio::common::AudioDeviceDescription;
using media::audio::common::AudioDeviceType;
using media::audio::common::AudioEncapsulationMetadataType;
using media::audio::common::AudioEncapsulationMode;
using media::audio::common::AudioEncapsulationType;
@@ -406,7 +408,7 @@ namespace {
namespace detail {
using AudioChannelPair = std::pair<audio_channel_mask_t, AudioChannelLayout>;
using AudioChannelPairs = std::vector<AudioChannelPair>;
using AudioDevicePair = std::pair<audio_devices_t, media::AudioDeviceDescription>;
using AudioDevicePair = std::pair<audio_devices_t, AudioDeviceDescription>;
using AudioDevicePairs = std::vector<AudioDevicePair>;
using AudioFormatPair = std::pair<audio_format_t, AudioFormatDescription>;
using AudioFormatPairs = std::vector<AudioFormatPair>;
@@ -494,9 +496,9 @@ const detail::AudioChannelPairs& getVoiceAudioChannelPairs() {
    return pairs;
}

media::AudioDeviceDescription make_AudioDeviceDescription(media::AudioDeviceType type,
AudioDeviceDescription make_AudioDeviceDescription(AudioDeviceType type,
        const std::string& connection = "") {
    media::AudioDeviceDescription result;
    AudioDeviceDescription result;
    result.type = type;
    result.connection = connection;
    return result;
@@ -504,7 +506,7 @@ media::AudioDeviceDescription make_AudioDeviceDescription(media::AudioDeviceType

void append_AudioDeviceDescription(detail::AudioDevicePairs& pairs,
        audio_devices_t inputType, audio_devices_t outputType,
        media::AudioDeviceType inType, media::AudioDeviceType outType,
        AudioDeviceType inType, AudioDeviceType outType,
        const std::string& connection = "") {
    pairs.push_back(std::make_pair(inputType, make_AudioDeviceDescription(inType, connection)));
    pairs.push_back(std::make_pair(outputType, make_AudioDeviceDescription(outType, connection)));
@@ -514,174 +516,174 @@ const detail::AudioDevicePairs& getAudioDevicePairs() {
    static const detail::AudioDevicePairs pairs = []() {
        detail::AudioDevicePairs pairs = {{
            {
                AUDIO_DEVICE_NONE, media::AudioDeviceDescription{}
                AUDIO_DEVICE_NONE, AudioDeviceDescription{}
            },
            {
                AUDIO_DEVICE_OUT_EARPIECE, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_SPEAKER_EARPIECE)
                        AudioDeviceType::OUT_SPEAKER_EARPIECE)
            },
            {
                AUDIO_DEVICE_OUT_SPEAKER, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_SPEAKER)
                        AudioDeviceType::OUT_SPEAKER)
            },
            {
                AUDIO_DEVICE_OUT_WIRED_HEADPHONE, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_HEADPHONE,
                        media::AudioDeviceDescription::CONNECTION_ANALOG())
                        AudioDeviceType::OUT_HEADPHONE,
                        AudioDeviceDescription::CONNECTION_ANALOG())
            },
            {
                AUDIO_DEVICE_OUT_BLUETOOTH_SCO, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_DEVICE,
                        media::AudioDeviceDescription::CONNECTION_BT_SCO())
                        AudioDeviceType::OUT_DEVICE,
                        AudioDeviceDescription::CONNECTION_BT_SCO())
            },
            {
                AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_CARKIT,
                        media::AudioDeviceDescription::CONNECTION_BT_SCO())
                        AudioDeviceType::OUT_CARKIT,
                        AudioDeviceDescription::CONNECTION_BT_SCO())
            },
            {
                AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_HEADPHONE,
                        media::AudioDeviceDescription::CONNECTION_BT_A2DP())
                        AudioDeviceType::OUT_HEADPHONE,
                        AudioDeviceDescription::CONNECTION_BT_A2DP())
            },
            {
                AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_SPEAKER,
                        media::AudioDeviceDescription::CONNECTION_BT_A2DP())
                        AudioDeviceType::OUT_SPEAKER,
                        AudioDeviceDescription::CONNECTION_BT_A2DP())
            },
            {
                AUDIO_DEVICE_OUT_TELEPHONY_TX, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_TELEPHONY_TX)
                        AudioDeviceType::OUT_TELEPHONY_TX)
            },
            {
                AUDIO_DEVICE_OUT_AUX_LINE, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_LINE_AUX)
                        AudioDeviceType::OUT_LINE_AUX)
            },
            {
                AUDIO_DEVICE_OUT_SPEAKER_SAFE, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_SPEAKER_SAFE)
                        AudioDeviceType::OUT_SPEAKER_SAFE)
            },
            {
                AUDIO_DEVICE_OUT_HEARING_AID, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_HEARING_AID,
                        media::AudioDeviceDescription::CONNECTION_WIRELESS())
                        AudioDeviceType::OUT_HEARING_AID,
                        AudioDeviceDescription::CONNECTION_WIRELESS())
            },
            {
                AUDIO_DEVICE_OUT_ECHO_CANCELLER, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_ECHO_CANCELLER)
                        AudioDeviceType::OUT_ECHO_CANCELLER)
            },
            {
                AUDIO_DEVICE_OUT_BLE_SPEAKER, make_AudioDeviceDescription(
                        media::AudioDeviceType::OUT_SPEAKER,
                        media::AudioDeviceDescription::CONNECTION_BT_LE())
                        AudioDeviceType::OUT_SPEAKER,
                        AudioDeviceDescription::CONNECTION_BT_LE())
            },
            // AUDIO_DEVICE_IN_AMBIENT and IN_COMMUNICATION are removed since they were deprecated.
            {
                AUDIO_DEVICE_IN_BUILTIN_MIC, make_AudioDeviceDescription(
                        media::AudioDeviceType::IN_MICROPHONE)
                        AudioDeviceType::IN_MICROPHONE)
            },
            {
                AUDIO_DEVICE_IN_BACK_MIC, make_AudioDeviceDescription(
                        media::AudioDeviceType::IN_MICROPHONE_BACK)
                        AudioDeviceType::IN_MICROPHONE_BACK)
            },
            {
                AUDIO_DEVICE_IN_TELEPHONY_RX, make_AudioDeviceDescription(
                        media::AudioDeviceType::IN_TELEPHONY_RX)
                        AudioDeviceType::IN_TELEPHONY_RX)
            },
            {
                AUDIO_DEVICE_IN_TV_TUNER, make_AudioDeviceDescription(
                        media::AudioDeviceType::IN_TV_TUNER)
                        AudioDeviceType::IN_TV_TUNER)
            },
            {
                AUDIO_DEVICE_IN_LOOPBACK, make_AudioDeviceDescription(
                        media::AudioDeviceType::IN_LOOPBACK)
                        AudioDeviceType::IN_LOOPBACK)
            },
            {
                AUDIO_DEVICE_IN_BLUETOOTH_BLE, make_AudioDeviceDescription(
                        media::AudioDeviceType::IN_DEVICE,
                        media::AudioDeviceDescription::CONNECTION_BT_LE())
                        AudioDeviceType::IN_DEVICE,
                        AudioDeviceDescription::CONNECTION_BT_LE())
            },
            {
                AUDIO_DEVICE_IN_ECHO_REFERENCE, make_AudioDeviceDescription(
                        media::AudioDeviceType::IN_ECHO_REFERENCE)
                        AudioDeviceType::IN_ECHO_REFERENCE)
            }
        }};
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_DEFAULT, AUDIO_DEVICE_OUT_DEFAULT,
                media::AudioDeviceType::IN_DEFAULT, media::AudioDeviceType::OUT_DEFAULT);
                AudioDeviceType::IN_DEFAULT, AudioDeviceType::OUT_DEFAULT);
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_WIRED_HEADSET, AUDIO_DEVICE_OUT_WIRED_HEADSET,
                media::AudioDeviceType::IN_HEADSET, media::AudioDeviceType::OUT_HEADSET,
                media::AudioDeviceDescription::CONNECTION_ANALOG());
                AudioDeviceType::IN_HEADSET, AudioDeviceType::OUT_HEADSET,
                AudioDeviceDescription::CONNECTION_ANALOG());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET, AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET,
                media::AudioDeviceType::IN_HEADSET, media::AudioDeviceType::OUT_HEADSET,
                media::AudioDeviceDescription::CONNECTION_BT_SCO());
                AudioDeviceType::IN_HEADSET, AudioDeviceType::OUT_HEADSET,
                AudioDeviceDescription::CONNECTION_BT_SCO());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_HDMI, AUDIO_DEVICE_OUT_HDMI,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_HDMI());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_HDMI());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_REMOTE_SUBMIX, AUDIO_DEVICE_OUT_REMOTE_SUBMIX,
                media::AudioDeviceType::IN_SUBMIX, media::AudioDeviceType::OUT_SUBMIX);
                AudioDeviceType::IN_SUBMIX, AudioDeviceType::OUT_SUBMIX);
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET, AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET,
                media::AudioDeviceType::IN_HEADSET, media::AudioDeviceType::OUT_HEADSET,
                media::AudioDeviceDescription::CONNECTION_ANALOG_DOCK());
                AudioDeviceType::IN_HEADSET, AudioDeviceType::OUT_HEADSET,
                AudioDeviceDescription::CONNECTION_ANALOG_DOCK());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_DGTL_DOCK_HEADSET, AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET,
                media::AudioDeviceType::IN_HEADSET, media::AudioDeviceType::OUT_HEADSET,
                media::AudioDeviceDescription::CONNECTION_DIGITAL_DOCK());
                AudioDeviceType::IN_HEADSET, AudioDeviceType::OUT_HEADSET,
                AudioDeviceDescription::CONNECTION_DIGITAL_DOCK());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_USB_ACCESSORY, AUDIO_DEVICE_OUT_USB_ACCESSORY,
                media::AudioDeviceType::IN_ACCESSORY, media::AudioDeviceType::OUT_ACCESSORY,
                media::AudioDeviceDescription::CONNECTION_USB());
                AudioDeviceType::IN_ACCESSORY, AudioDeviceType::OUT_ACCESSORY,
                AudioDeviceDescription::CONNECTION_USB());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_USB_DEVICE, AUDIO_DEVICE_OUT_USB_DEVICE,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_USB());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_USB());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_FM_TUNER, AUDIO_DEVICE_OUT_FM,
                media::AudioDeviceType::IN_FM_TUNER, media::AudioDeviceType::OUT_FM);
                AudioDeviceType::IN_FM_TUNER, AudioDeviceType::OUT_FM);
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_LINE, AUDIO_DEVICE_OUT_LINE,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_ANALOG());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_ANALOG());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_SPDIF, AUDIO_DEVICE_OUT_SPDIF,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_SPDIF());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_SPDIF());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_BLUETOOTH_A2DP, AUDIO_DEVICE_OUT_BLUETOOTH_A2DP,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_BT_A2DP());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_BT_A2DP());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_IP, AUDIO_DEVICE_OUT_IP,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_IP_V4());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_IP_V4());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_BUS, AUDIO_DEVICE_OUT_BUS,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_BUS());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_BUS());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_PROXY, AUDIO_DEVICE_OUT_PROXY,
                media::AudioDeviceType::IN_AFE_PROXY, media::AudioDeviceType::OUT_AFE_PROXY);
                AudioDeviceType::IN_AFE_PROXY, AudioDeviceType::OUT_AFE_PROXY);
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_USB_HEADSET, AUDIO_DEVICE_OUT_USB_HEADSET,
                media::AudioDeviceType::IN_HEADSET, media::AudioDeviceType::OUT_HEADSET,
                media::AudioDeviceDescription::CONNECTION_USB());
                AudioDeviceType::IN_HEADSET, AudioDeviceType::OUT_HEADSET,
                AudioDeviceDescription::CONNECTION_USB());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_HDMI_ARC, AUDIO_DEVICE_OUT_HDMI_ARC,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_HDMI_ARC());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_HDMI_ARC());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_HDMI_EARC, AUDIO_DEVICE_OUT_HDMI_EARC,
                media::AudioDeviceType::IN_DEVICE, media::AudioDeviceType::OUT_DEVICE,
                media::AudioDeviceDescription::CONNECTION_HDMI_EARC());
                AudioDeviceType::IN_DEVICE, AudioDeviceType::OUT_DEVICE,
                AudioDeviceDescription::CONNECTION_HDMI_EARC());
        append_AudioDeviceDescription(pairs,
                AUDIO_DEVICE_IN_BLE_HEADSET, AUDIO_DEVICE_OUT_BLE_HEADSET,
                media::AudioDeviceType::IN_HEADSET, media::AudioDeviceType::OUT_HEADSET,
                media::AudioDeviceDescription::CONNECTION_BT_LE());
                AudioDeviceType::IN_HEADSET, AudioDeviceType::OUT_HEADSET,
                AudioDeviceDescription::CONNECTION_BT_LE());
        return pairs;
    }();
    return pairs;
@@ -1135,8 +1137,8 @@ ConversionResult<AudioChannelLayout> legacy2aidl_audio_channel_mask_t_AudioChann
}

ConversionResult<audio_devices_t> aidl2legacy_AudioDeviceDescription_audio_devices_t(
        const media::AudioDeviceDescription& aidl) {
    static const std::unordered_map<media::AudioDeviceDescription, audio_devices_t> m =
        const AudioDeviceDescription& aidl) {
    static const std::unordered_map<AudioDeviceDescription, audio_devices_t> m =
            make_ReverseMap(getAudioDevicePairs());
    if (auto it = m.find(aidl); it != m.end()) {
        return it->second;
@@ -1146,9 +1148,9 @@ ConversionResult<audio_devices_t> aidl2legacy_AudioDeviceDescription_audio_devic
    }
}

ConversionResult<media::AudioDeviceDescription> legacy2aidl_audio_devices_t_AudioDeviceDescription(
ConversionResult<AudioDeviceDescription> legacy2aidl_audio_devices_t_AudioDeviceDescription(
        audio_devices_t legacy) {
    static const std::unordered_map<audio_devices_t, media::AudioDeviceDescription> m =
    static const std::unordered_map<audio_devices_t, AudioDeviceDescription> m =
            make_DirectMap(getAudioDevicePairs());
    if (auto it = m.find(legacy); it != m.end()) {
        return it->second;
+0 −3
Original line number Diff line number Diff line
@@ -312,9 +312,6 @@ aidl_interface {
    srcs: [
        "aidl/android/media/AudioAttributesInternal.aidl",
        "aidl/android/media/AudioClient.aidl",
        "aidl/android/media/AudioDevice.aidl",
        "aidl/android/media/AudioDeviceDescription.aidl",
        "aidl/android/media/AudioDeviceType.aidl",
        "aidl/android/media/AudioDualMonoMode.aidl",
        "aidl/android/media/AudioFlag.aidl",
        "aidl/android/media/AudioGain.aidl",
+34 −32

File changed.

Preview size limit exceeded, changes collapsed.

+0 −27
Original line number Diff line number Diff line
/*
 * Copyright (C) 2020 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.
 */

package android.media;

import android.media.AudioDeviceDescription;

/**
 * {@hide}
 */
parcelable AudioDevice {
    AudioDeviceDescription type;
    @utf8InCpp String address;
}
+0 −101
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 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.
 */

package android.media;

import android.media.AudioDeviceType;

parcelable AudioDeviceDescription {
    /**
     * Type and directionality of the device. For bidirectional audio devices
     * two descriptions need to be created, having the same value for
     * the 'connection' field.
     *
     * See 'AudioDeviceType' for the list of supported values.
     */
    AudioDeviceType type = AudioDeviceType.NONE;
    /**
     * Specifies the type of the connection of the device to the audio system.
     * Usually it's some kind of a communication protocol, e.g. Bluetooth SCO or
     * USB. There is a list of connection types recognized by the framework,
     * defined using 'CONNECTION_' constants. Vendors can add their own
     * connection types with "vx.<vendor>." prefix.
     *
     * When the 'connection' field is left empty and 'type != NONE | DEFAULT',
     * it is assumed that the device is permanently attached to the audio
     * system, e.g. a built-in speaker or microphone.
     *
     * The 'connection' field must be left empty if 'type' is 'NONE' or
     * '{IN|OUT}_DEFAULT'.
     */
    @utf8InCpp String connection;
    /**
     * Analog connection, for example, via 3.5 mm analog jack.
     */
    const @utf8InCpp String CONNECTION_ANALOG = "analog";
    /**
     * Low-End (Analog) Desk Dock.
     */
    const @utf8InCpp String CONNECTION_ANALOG_DOCK = "analog-dock";
    /**
     * Bluetooth A2DP connection.
     */
    const @utf8InCpp String CONNECTION_BT_A2DP = "bt-a2dp";
    /**
     * Bluetooth Low Energy (LE) connection.
     */
    const @utf8InCpp String CONNECTION_BT_LE = "bt-le";
    /**
     * Bluetooth SCO connection.
     */
    const @utf8InCpp String CONNECTION_BT_SCO = "bt-sco";
    /**
     * Bus connection. Mostly used in automotive scenarios.
     */
    const @utf8InCpp String CONNECTION_BUS = "bus";
    /**
     * High-End (Digital) Desk Dock.
     */
    const @utf8InCpp String CONNECTION_DIGITAL_DOCK = "digital-dock";
    /**
     * HDMI connection.
     */
    const @utf8InCpp String CONNECTION_HDMI = "hdmi";
    /**
     * HDMI ARC connection.
     */
    const @utf8InCpp String CONNECTION_HDMI_ARC = "hdmi-arc";
    /**
     * HDMI eARC connection.
     */
    const @utf8InCpp String CONNECTION_HDMI_EARC = "hdmi-earc";
    /**
     * IP v4 connection.
     */
    const @utf8InCpp String CONNECTION_IP_V4 = "ip-v4";
    /**
     * SPDIF connection.
     */
    const @utf8InCpp String CONNECTION_SPDIF = "spdif";
    /**
     * A wireless connection when the actual protocol is unspecified.
     */
    const @utf8InCpp String CONNECTION_WIRELESS = "wireless";
    /**
     * USB connection.
     */
    const @utf8InCpp String CONNECTION_USB = "usb";
}
Loading