1/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16
17#include "Log.h"
18#include "audio/AudioRemote.h"
19#include "audio/RemoteAudio.h"
20
21bool AudioRemote::prepare(AudioHardware::SamplingRate samplingRate, int volume, int mode)
22{
23    if (mRemote == NULL) {
24        LOGE("AudioRemote::prepare mRemote NULL");
25        return false;
26    }
27    mSamplingRate = samplingRate;
28    mVolume = volume;
29    mMode = mode;
30    return true;
31}
32
33AudioRemote::AudioRemote(android::sp<RemoteAudio>& remote)
34    : mRemote(remote)
35{
36
37}
38
39AudioRemotePlayback::AudioRemotePlayback(android::sp<RemoteAudio>& remote)
40    : AudioRemote(remote)
41{
42
43}
44
45bool AudioRemotePlayback::startPlaybackOrRecord(android::sp<Buffer>& buffer, int numberRepetition)
46{
47    //TODO not supported for the moment
48    return false;
49}
50
51bool AudioRemotePlayback::waitForCompletion()
52{
53    return mRemote->waitForPlaybackCompletion();
54}
55
56void AudioRemotePlayback::stopPlaybackOrRecord()
57{
58    mRemote->stopPlayback();
59}
60
61bool AudioRemotePlayback::startPlaybackForRemoteData(int id, bool stereo, int numberRepetition)
62{
63    return mRemote->startPlayback(stereo, mSamplingRate, mMode, mVolume, id, numberRepetition);
64}
65
66AudioRemoteRecording::AudioRemoteRecording(android::sp<RemoteAudio>& remote)
67    : AudioRemote(remote)
68{
69
70}
71
72bool AudioRemoteRecording::startPlaybackOrRecord(android::sp<Buffer>& buffer,
73        int /*numberRepetition*/)
74{
75    bool stereo = buffer->isStereo();
76    return mRemote->startRecording(stereo, mSamplingRate, mMode, mVolume, buffer);
77}
78
79bool AudioRemoteRecording::waitForCompletion()
80{
81    return mRemote->waitForRecordingCompletion();
82}
83
84void AudioRemoteRecording::stopPlaybackOrRecord()
85{
86    mRemote->stopRecording();
87}
88
89
90
91