Home | History | Annotate | Download | only in task
      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