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

Commit 54a54889 authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Automerger Merge Worker
Browse files

audio: Implementation of audio I/O, part I am: 6a4872df am: 1909ccc5 am: 91908045

parents 782200c1 91908045
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -75,10 +75,14 @@ aidl_interface {
        "android/hardware/audio/core/IModule.aidl",
        "android/hardware/audio/core/IStreamIn.aidl",
        "android/hardware/audio/core/IStreamOut.aidl",
        "android/hardware/audio/core/MmapBufferDescriptor.aidl",
        "android/hardware/audio/core/ModuleDebug.aidl",
        "android/hardware/audio/core/StreamDescriptor.aidl",
    ],
    imports: [
        "android.hardware.audio.common-V1",
        "android.hardware.common-V2",
        "android.hardware.common.fmq-V1",
        "android.media.audio.common.types-V1",
    ],
    stability: "vintf",
+2 −0
Original line number Diff line number Diff line
@@ -37,4 +37,6 @@ parcelable AudioPatch {
  int id;
  int[] sourcePortConfigIds;
  int[] sinkPortConfigIds;
  int minimumStreamBufferSizeFrames;
  int[] latenciesMs;
}
+25 −2
Original line number Diff line number Diff line
@@ -43,10 +43,33 @@ interface IModule {
  android.media.audio.common.AudioPort[] getAudioPorts();
  android.hardware.audio.core.AudioRoute[] getAudioRoutes();
  android.hardware.audio.core.AudioRoute[] getAudioRoutesForAudioPort(int portId);
  android.hardware.audio.core.IStreamIn openInputStream(int portConfigId, in android.hardware.audio.common.SinkMetadata sinkMetadata);
  android.hardware.audio.core.IStreamOut openOutputStream(int portConfigId, in android.hardware.audio.common.SourceMetadata sourceMetadata, in @nullable android.media.audio.common.AudioOffloadInfo offloadInfo);
  android.hardware.audio.core.IModule.OpenInputStreamReturn openInputStream(in android.hardware.audio.core.IModule.OpenInputStreamArguments args);
  android.hardware.audio.core.IModule.OpenOutputStreamReturn openOutputStream(in android.hardware.audio.core.IModule.OpenOutputStreamArguments args);
  android.hardware.audio.core.AudioPatch setAudioPatch(in android.hardware.audio.core.AudioPatch requested);
  boolean setAudioPortConfig(in android.media.audio.common.AudioPortConfig requested, out android.media.audio.common.AudioPortConfig suggested);
  void resetAudioPatch(int patchId);
  void resetAudioPortConfig(int portConfigId);
  @VintfStability
  parcelable OpenInputStreamArguments {
    int portConfigId;
    android.hardware.audio.common.SinkMetadata sinkMetadata;
    long bufferSizeFrames;
  }
  @VintfStability
  parcelable OpenInputStreamReturn {
    android.hardware.audio.core.IStreamIn stream;
    android.hardware.audio.core.StreamDescriptor desc;
  }
  @VintfStability
  parcelable OpenOutputStreamArguments {
    int portConfigId;
    android.hardware.audio.common.SourceMetadata sourceMetadata;
    @nullable android.media.audio.common.AudioOffloadInfo offloadInfo;
    long bufferSizeFrames;
  }
  @VintfStability
  parcelable OpenOutputStreamReturn {
    android.hardware.audio.core.IStreamOut stream;
    android.hardware.audio.core.StreamDescriptor desc;
  }
}
+41 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.audio.core;
@JavaDerive(equals=true, toString=true) @VintfStability
parcelable MmapBufferDescriptor {
  android.hardware.common.Ashmem sharedMemory;
  long burstSizeFrames;
  int flags;
  const int FLAG_INDEX_APPLICATION_SHAREABLE = 0;
}
+69 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.audio.core;
@JavaDerive(equals=true, toString=true) @VintfStability
parcelable StreamDescriptor {
  android.hardware.common.fmq.MQDescriptor<android.hardware.audio.core.StreamDescriptor.Command,android.hardware.common.fmq.SynchronizedReadWrite> command;
  android.hardware.common.fmq.MQDescriptor<android.hardware.audio.core.StreamDescriptor.Reply,android.hardware.common.fmq.SynchronizedReadWrite> reply;
  long bufferSizeFrames;
  android.hardware.audio.core.StreamDescriptor.AudioBuffer audio;
  const int COMMAND_EXIT = 0;
  const int COMMAND_BURST = 1;
  const int STATUS_OK = 0;
  const int STATUS_ILLEGAL_ARGUMENT = 1;
  const int STATUS_ILLEGAL_STATE = 2;
  @FixedSize @VintfStability
  parcelable Position {
    long frames;
    long timeNs;
  }
  @FixedSize @VintfStability
  parcelable Command {
    int code;
    int fmqByteCount;
  }
  @FixedSize @VintfStability
  parcelable Reply {
    int status;
    int fmqByteCount;
    android.hardware.audio.core.StreamDescriptor.Position observable;
    android.hardware.audio.core.StreamDescriptor.Position hardware;
    int latencyMs;
  }
  @VintfStability
  union AudioBuffer {
    android.hardware.common.fmq.MQDescriptor<byte,android.hardware.common.fmq.UnsynchronizedWrite> fmq;
    android.hardware.audio.core.MmapBufferDescriptor mmap;
  }
}
Loading