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 18 #ifndef CTSAUDIO_TASKASYNC_H 19 #define CTSAUDIO_TASKASYNC_H 20 21 #include "audio/AudioHardware.h" 22 #include "TaskGeneric.h" 23 24 class TaskSequential; 25 /** 26 * Common parent class for TaskInput and TaskOutput 27 */ 28 class TaskAsync: public TaskGeneric { 29 public: 30 TaskAsync(TaskType type); 31 virtual ~TaskAsync(); 32 virtual TaskGeneric::ExecutionResult run(); 33 virtual bool parseAttribute(const android::String8& name, const android::String8& value); 34 virtual TaskGeneric::ExecutionResult start() = 0; 35 virtual TaskGeneric::ExecutionResult complete() = 0; 36 37 bool isAsynchronous() { 38 return mAsynchronous; 39 } 40 41 private: 42 void makeAsynchronous() { 43 mAsynchronous = true; 44 } 45 TaskSequential* getParentSequential(); 46 47 protected: 48 android::String8 mId; 49 int mVolume; 50 51 enum DeviceType { 52 EDeviceHost, 53 EDeviceDUT 54 }; 55 56 DeviceType mDeviceType; 57 58 AudioHardware::AudioMode mMode; 59 60 private: 61 bool mAsynchronous; 62 63 }; 64 65 66 67 #endif // CTSAUDIO_TASKASYNC_H 68