Refactor management of hardware audio sources to make use of ClientDescriptor class: - HW sources are now tracked by port ID and not audio patch handle. - startAudioSource() and stopAudioSource() APIs are updated to use audio_port_handle_t as source identifier. - AudioSourceDescriptor class is deleted and replaced by SourceClientDescriptor class deriving from TrackClientDescriptor Test: make. Change-Id: Ie418b566519a591f036b538a77319f8e30aa99a8gugelfrei
parent
f344afa981
commit
3e6c7e1591
@ -1,59 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2015 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.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <system/audio.h>
|
||||
#include <utils/Errors.h>
|
||||
#include <utils/KeyedVector.h>
|
||||
#include <utils/RefBase.h>
|
||||
#include <RoutingStrategy.h>
|
||||
#include <AudioPatch.h>
|
||||
|
||||
namespace android {
|
||||
|
||||
class SwAudioOutputDescriptor;
|
||||
class HwAudioOutputDescriptor;
|
||||
class DeviceDescriptor;
|
||||
|
||||
class AudioSourceDescriptor: public RefBase
|
||||
{
|
||||
public:
|
||||
AudioSourceDescriptor(const sp<DeviceDescriptor> device, const audio_attributes_t *attributes,
|
||||
uid_t uid) :
|
||||
mDevice(device), mAttributes(*attributes), mUid(uid) {}
|
||||
virtual ~AudioSourceDescriptor() {}
|
||||
|
||||
audio_patch_handle_t getHandle() const { return mPatchDesc->mHandle; }
|
||||
|
||||
status_t dump(int fd);
|
||||
|
||||
const sp<DeviceDescriptor> mDevice;
|
||||
const audio_attributes_t mAttributes;
|
||||
uid_t mUid;
|
||||
sp<AudioPatch> mPatchDesc;
|
||||
wp<SwAudioOutputDescriptor> mSwOutput;
|
||||
wp<HwAudioOutputDescriptor> mHwOutput;
|
||||
};
|
||||
|
||||
class AudioSourceCollection :
|
||||
public DefaultKeyedVector< audio_patch_handle_t, sp<AudioSourceDescriptor> >
|
||||
{
|
||||
public:
|
||||
status_t dump(int fd) const;
|
||||
};
|
||||
|
||||
} // namespace android
|
@ -1,64 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2015 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.
|
||||
*/
|
||||
|
||||
#define LOG_TAG "APM::AudioSourceDescriptor"
|
||||
//#define LOG_NDEBUG 0
|
||||
|
||||
#include <utils/Log.h>
|
||||
#include <utils/String8.h>
|
||||
#include <media/AudioPolicyHelper.h>
|
||||
#include <HwModule.h>
|
||||
#include <AudioGain.h>
|
||||
#include <AudioSourceDescriptor.h>
|
||||
#include <DeviceDescriptor.h>
|
||||
#include <IOProfile.h>
|
||||
#include <AudioOutputDescriptor.h>
|
||||
|
||||
namespace android {
|
||||
|
||||
status_t AudioSourceDescriptor::dump(int fd)
|
||||
{
|
||||
const size_t SIZE = 256;
|
||||
char buffer[SIZE];
|
||||
String8 result;
|
||||
|
||||
snprintf(buffer, SIZE, "mStream: %d\n", audio_attributes_to_stream_type(&mAttributes));
|
||||
result.append(buffer);
|
||||
snprintf(buffer, SIZE, "mDevice:\n");
|
||||
result.append(buffer);
|
||||
write(fd, result.string(), result.size());
|
||||
mDevice->dump(fd, 2 , 0);
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
status_t AudioSourceCollection::dump(int fd) const
|
||||
{
|
||||
const size_t SIZE = 256;
|
||||
char buffer[SIZE];
|
||||
|
||||
snprintf(buffer, SIZE, "\nAudio sources dump:\n");
|
||||
write(fd, buffer, strlen(buffer));
|
||||
for (size_t i = 0; i < size(); i++) {
|
||||
snprintf(buffer, SIZE, "- Source %d dump:\n", keyAt(i));
|
||||
write(fd, buffer, strlen(buffer));
|
||||
valueAt(i)->dump(fd);
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
}; //namespace android
|
Loading…
Reference in new issue