Lines Matching full:virtual

74 class IAfThreadCallback : public virtual RefBase {
76 virtual audio_utils::mutex& mutex() const
78 virtual bool isNonOffloadableGlobalEffectEnabled_l() const
80 virtual audio_unique_id_t nextUniqueId(audio_unique_id_use_t use) = 0;
81 virtual bool btNrecIsOff() const = 0;
82 virtual float masterVolume_l() const
84 virtual bool masterMute_l() const
86 virtual float getMasterBalance_l() const
88 virtual bool streamMute_l(audio_stream_type_t stream) const
90 virtual audio_mode_t getMode() const = 0;
91 virtual bool isLowRamDevice() const = 0;
92 virtual bool isAudioPolicyReady() const = 0; // Effects
93 virtual uint32_t getScreenState() const = 0;
94 virtual std::optional<media::AudioVibratorInfo> getDefaultVibratorInfo_l() const
96 virtual const sp<IAfPatchPanel>& getPatchPanel() const = 0;
97 virtual const sp<MelReporter>& getMelReporter() const = 0;
98 virtual const sp<EffectsFactoryHalInterface>& getEffectsFactoryHal() const = 0;
99 virtual sp<IAudioManager> getOrCreateAudioManager() = 0; // Tracks
101 virtual bool updateOrphanEffectChains(const sp<IAfEffectModule>& effect)
103 virtual status_t moveEffectChain_ll(audio_session_t sessionId,
108 virtual void requestLogMerge() = 0;
109 virtual sp<NBLog::Writer> newWriter_l(size_t size, const char *name)
111 virtual void unregisterWriter(const sp<NBLog::Writer>& writer) = 0;
113 virtual sp<audioflinger::SyncEvent> createSyncEvent(AudioSystem::sync_event_t type,
121 virtual void ioConfigChanged_l(audio_io_config_event_t event,
124 virtual void onNonOffloadableGlobalEffectEnable() EXCLUDES_AudioFlinger_Mutex = 0;
125 virtual void onSupportedLatencyModesChanged(audio_io_handle_t output,
129 virtual void onHardError(std::set<audio_port_handle_t>& trackPortIds) = 0;
131 virtual const ::com::android::media::permission::IPermissionProvider&
135 class IAfThreadBase : public virtual RefBase {
155 virtual status_t readyToRun() = 0;
156 virtual void clearPowerManager() EXCLUDES_ThreadBase_Mutex = 0;
157 virtual status_t initCheck() const = 0;
158 virtual type_t type() const = 0;
159 virtual bool isDuplicating() const = 0;
160 virtual audio_io_handle_t id() const = 0;
161 virtual uint32_t sampleRate() const = 0;
162 virtual audio_channel_mask_t channelMask() const = 0;
163 virtual audio_channel_mask_t mixerChannelMask() const = 0;
164 virtual audio_format_t format() const = 0;
165 virtual uint32_t channelCount() const = 0;
166 virtual std::string flagsAsString() const = 0;
170 virtual size_t frameCount() const = 0;
171 virtual audio_channel_mask_t hapticChannelMask() const = 0;
172 virtual uint32_t hapticChannelCount() const = 0;
173 virtual uint32_t latency_l() const = 0; // NO_THREAD_SAFETY_ANALYSIS
174 virtual void setVolumeForOutput_l(float left, float right) const REQUIRES(mutex()) = 0;
177 virtual size_t frameCountHAL() const = 0;
178 virtual size_t frameSize() const = 0;
179 // Should be "virtual status_t requestExitAndWait()" and override same
180 // method in Thread, but Thread::requestExitAndWait() is not yet virtual.
181 virtual void exit() EXCLUDES_ThreadBase_Mutex = 0;
182 virtual bool checkForNewParameter_l(const String8& keyValuePair, status_t& status)
184 virtual status_t setParameters(const String8& keyValuePairs) EXCLUDES_ThreadBase_Mutex = 0;
185 virtual String8 getParameters(const String8& keys) EXCLUDES_ThreadBase_Mutex = 0;
186 virtual void ioConfigChanged_l(
195 virtual void sendIoConfigEvent(
198 virtual void sendIoConfigEvent_l(
201 virtual void sendPrioConfigEvent(pid_t pid, pid_t tid, int32_t prio, bool forApp)
203 virtual void sendPrioConfigEvent_l(pid_t pid, pid_t tid, int32_t prio, bool forApp)
205 virtual status_t sendSetParameterConfigEvent_l(const String8& keyValuePair)
207 virtual status_t sendCreateAudioPatchConfigEvent(
210 virtual status_t sendReleaseAudioPatchConfigEvent(audio_patch_handle_t handle)
212 virtual status_t sendUpdateOutDeviceConfigEvent(
214 virtual void sendResizeBufferConfigEvent_l(int32_t maxSharedAudioHistoryMs)
216 virtual void sendCheckOutputStageEffectsEvent() EXCLUDES_ThreadBase_Mutex = 0;
217 virtual void sendCheckOutputStageEffectsEvent_l()
219 virtual void sendHalLatencyModesChangedEvent_l()
222 virtual void processConfigEvents_l()
224 virtual void setCheckOutputStageEffects() = 0; // no mutex needed
225 virtual void cacheParameters_l()
227 virtual status_t createAudioPatch_l(
230 virtual status_t releaseAudioPatch_l(const audio_patch_handle_t handle)
232 virtual void updateOutDevices(const DeviceDescriptorBaseVector& outDevices)
234 virtual void toAudioPortConfig(struct audio_port_config* config)
236 virtual void resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs)
240 virtual bool inStandby() const = 0;
241 virtual const DeviceTypeSet outDeviceTypes_l() const REQUIRES(mutex()) = 0;
242 virtual audio_devices_t inDeviceType_l() const REQUIRES(mutex()) = 0;
243 virtual DeviceTypeSet getDeviceTypes_l() const REQUIRES(mutex()) = 0;
244 virtual const AudioDeviceTypeAddrVector& outDeviceTypeAddrs() const = 0;
245 virtual const AudioDeviceTypeAddr& inDeviceTypeAddr() const = 0;
246 virtual bool isOutput() const = 0;
247 virtual bool isOffloadOrMmap() const = 0;
248 virtual sp<StreamHalInterface> stream() const = 0;
249 virtual sp<IAfEffectHandle> createEffect_l(
277 virtual sp<IAfEffectChain> getEffectChain(audio_session_t sessionId) const
280 virtual sp<IAfEffectChain> getEffectChain_l(audio_session_t sessionId) const
282 virtual std::vector<int> getEffectIds_l(audio_session_t sessionId) const
285 virtual status_t addEffectChain_l(const sp<IAfEffectChain>& chain)
288 virtual size_t removeEffectChain_l(const sp<IAfEffectChain>& chain)
294 virtual void lockEffectChains_l(Vector<sp<IAfEffectChain>>& effectChains)
297 virtual void unlockEffectChains(const Vector<sp<IAfEffectChain>>& effectChains)
300 virtual Vector<sp<IAfEffectChain>> getEffectChains_l() const
303 virtual void setMode(audio_mode_t mode)
306 virtual sp<IAfEffectModule> getEffect(audio_session_t sessionId, int effectId) const
308 virtual sp<IAfEffectModule> getEffect_l(audio_session_t sessionId, int effectId) const
313 virtual status_t addEffect_ll(const sp<IAfEffectModule>& effect)
317 virtual void removeEffect_l(const sp<IAfEffectModule>& effect, bool release = false)
320 virtual void disconnectEffectHandle(IAfEffectHandle* handle, bool unpinIfLast)
323 virtual void detachAuxEffect_l(int effectId) REQUIRES(mutex()) = 0;
329 virtual uint32_t hasAudioSession_l(audio_session_t sessionId) const REQUIRES(mutex()) = 0;
330 virtual uint32_t hasAudioSession(audio_session_t sessionId) const
335 virtual product_strategy_t getStrategyForSession_l(audio_session_t sessionId) const
340 virtual void checkSuspendOnEffectEnabled(
344 virtual status_t setSyncEvent(const sp<audioflinger::SyncEvent>& event)
347 virtual bool isValidSyncEvent(const sp<audioflinger::SyncEvent>& event) const = 0;
355 virtual sp<MemoryDealer> readOnlyHeap() const = 0;
357 virtual sp<IMemory> pipeMemory() const = 0;
359 virtual void systemReady() EXCLUDES_ThreadBase_Mutex = 0;
362 virtual status_t checkEffectCompatibility_l(
365 virtual void broadcast_l() REQUIRES(mutex()) = 0;
367 virtual bool isTimestampCorrectionEnabled_l() const REQUIRES(mutex()) = 0;
369 virtual bool isMsdDevice() const = 0;
371 virtual void dump(int fd, const Vector<String16>& args) EXCLUDES_ThreadBase_Mutex = 0;
374 virtual void sendStatistics(bool force) EXCLUDES_ThreadBase_Mutex = 0;
376 virtual audio_utils::mutex& mutex() const
379 virtual void onEffectEnable(const sp<IAfEffectModule>& effect) EXCLUDES_ThreadBase_Mutex = 0;
380 virtual void onEffectDisable() EXCLUDES_ThreadBase_Mutex = 0;
383 virtual void invalidateTracksForAudioSession_l(audio_session_t sessionId) const
386 virtual void invalidateTracksForAudioSession(audio_session_t sessionId) const
389 virtual bool isStreamInitialized() const = 0;
390 virtual void startMelComputation_l(const sp<audio_utils::MelProcessor>& processor)
392 virtual void stopMelComputation_l()
395 virtual product_strategy_t getStrategyForStream(audio_stream_type_t stream) const
398 virtual void setEffectSuspended_l(
406 virtual void waitWhileThreadBusy_l(audio_utils::unique_lock<audio_utils::mutex>& ul)
412 virtual audio_utils::DeferredExecutor& getThreadloopExecutor() = 0;
415 virtual sp<IAfDirectOutputThread> asIAfDirectOutputThread() { return nullptr; } in asIAfDirectOutputThread()
416 virtual sp<IAfDuplicatingThread> asIAfDuplicatingThread() { return nullptr; } in asIAfDuplicatingThread()
417 virtual sp<IAfPlaybackThread> asIAfPlaybackThread() { return nullptr; } in asIAfPlaybackThread()
418 virtual sp<IAfRecordThread> asIAfRecordThread() { return nullptr; } in asIAfRecordThread()
419 virtual IAfThreadCallback* afThreadCallback() const = 0;
422 class IAfPlaybackThread : public virtual IAfThreadBase, public virtual VolumeInterface {
458 virtual uint32_t latency() const = 0; // should be in IAfThreadBase?
460 virtual uint32_t& fastTrackAvailMask_l() REQUIRES(mutex()) = 0;
462 virtual sp<IAfTrack> createTrack_l(
489 virtual status_t addTrack_l(const sp<IAfTrack>& track) REQUIRES(mutex()) = 0;
490 virtual bool destroyTrack_l(const sp<IAfTrack>& track) REQUIRES(mutex()) = 0;
491 virtual bool isTrackActive(const sp<IAfTrack>& track) const REQUIRES(mutex()) = 0;
492 virtual void addOutputTrack_l(const sp<IAfTrack>& track) REQUIRES(mutex()) = 0;
494 virtual AudioStreamOut* getOutput_l() const REQUIRES(mutex()) = 0;
495 virtual AudioStreamOut* getOutput() const EXCLUDES_ThreadBase_Mutex = 0;
496 virtual AudioStreamOut* clearOutput() EXCLUDES_ThreadBase_Mutex = 0;
499 virtual void suspend() = 0;
500 virtual void restore() = 0;
501 virtual bool isSuspended() const = 0;
502 virtual status_t getRenderPosition(uint32_t* halFrames, uint32_t* dspFrames) const
506 virtual float* sinkBuffer() const = 0;
508 virtual status_t attachAuxEffect(const sp<IAfTrack>& track, int EffectId)
510 virtual status_t attachAuxEffect_l(const sp<IAfTrack>& track, int EffectId)
514 virtual bool invalidateTracks_l(audio_stream_type_t streamType) REQUIRES(mutex()) = 0;
515 virtual bool invalidateTracks_l(std::set<audio_port_handle_t>& portIds) REQUIRES(mutex()) = 0;
516 virtual void invalidateTracks(audio_stream_type_t streamType)
520 virtual void invalidateTracks(std::set<audio_port_handle_t>& portIds)
523 virtual status_t getTimestamp_l(AudioTimestamp& timestamp) REQUIRES(mutex()) = 0;
524 virtual void addPatchTrack(const sp<IAfPatchTrack>& track) EXCLUDES_ThreadBase_Mutex = 0;
525 virtual void deletePatchTrack(const sp<IAfPatchTrack>& track) EXCLUDES_ThreadBase_Mutex = 0;
528 virtual int64_t computeWaitTimeNs_l() const REQUIRES(mutex()) = 0;
530 virtual bool isTrackAllowed_l(
534 virtual bool supportsHapticPlayback() const = 0;
536 virtual void setDownStreamPatch(const struct audio_patch* patch)
539 virtual IAfTrack* getTrackById_l(audio_port_handle_t trackId) REQUIRES(mutex()) = 0;
541 virtual bool hasMixer() const = 0;
543 virtual status_t setRequestedLatencyMode(audio_latency_mode_t mode) = 0;
545 virtual status_t getSupportedLatencyModes(std::vector<audio_latency_mode_t>* modes)
548 virtual status_t setBluetoothVariableLatencyEnabled(bool enabled) = 0;
550 virtual void setStandby() EXCLUDES_ThreadBase_Mutex = 0;
551 virtual void setStandby_l() REQUIRES(mutex()) = 0;
552 virtual bool waitForHalStart() EXCLUDES_ThreadBase_Mutex = 0;
554 virtual bool hasFastMixer() const = 0;
555 virtual FastTrackUnderruns getFastTrackUnderruns(size_t fastIndex) const = 0;
556 virtual const std::atomic<int64_t>& framesWritten() const = 0;
558 virtual bool usesHwAvSync() const = 0;
560 virtual void setTracksInternalMute(std::map<audio_port_handle_t, bool>* tracksInternalMute)
563 virtual status_t setPortsVolume(const std::vector<audio_port_handle_t> &portIds, float volume,
567 class IAfDirectOutputThread : public virtual IAfPlaybackThread {
569 virtual status_t selectPresentation(int presentationId, int programId) = 0;
572 class IAfDuplicatingThread : public virtual IAfPlaybackThread {
578 virtual void addOutputTrack(IAfPlaybackThread* thread) EXCLUDES_ThreadBase_Mutex = 0;
579 virtual uint32_t waitTimeMs() const = 0;
580 virtual void removeOutputTrack(IAfPlaybackThread* thread) EXCLUDES_ThreadBase_Mutex = 0;
583 class IAfRecordThread : public virtual IAfThreadBase {
589 virtual sp<IAfRecordTrack> createRecordTrack_l(
606 virtual void destroyTrack_l(const sp<IAfRecordTrack>& track) REQUIRES(mutex()) = 0;
607 virtual void removeTrack_l(const sp<IAfRecordTrack>& track) REQUIRES(mutex()) = 0;
609 virtual status_t start(
615 virtual bool stop(IAfRecordTrack* recordTrack) EXCLUDES_ThreadBase_Mutex = 0;
618 virtual AudioStreamIn* getInput() const = 0;
619 virtual AudioStreamIn* clearInput() = 0;
621 virtual status_t getActiveMicrophones(
624 virtual status_t setPreferredMicrophoneDirection(audio_microphone_direction_t direction)
626 virtual status_t setPreferredMicrophoneFieldDimension(float zoom)
629 virtual void addPatchTrack(const sp<IAfPatchRecord>& record)
631 virtual void deletePatchTrack(const sp<IAfPatchRecord>& record)
633 virtual bool fastTrackAvailable() const = 0;
634 virtual void setFastTrackAvailable(bool available) = 0;
636 virtual void setRecordSilenced(audio_port_handle_t portId, bool silenced)
638 virtual bool hasFastCapture() const = 0;
640 virtual void checkBtNrec() EXCLUDES_ThreadBase_Mutex = 0;
641 virtual uint32_t getInputFramesLost() const EXCLUDES_ThreadBase_Mutex = 0;
643 virtual status_t shareAudioHistory(
647 virtual void resetAudioHistory_l() REQUIRES(mutex()) = 0;
650 class IAfMmapThread : public virtual IAfThreadBase {
660 virtual void configure(
667 virtual void disconnect() EXCLUDES_ThreadBase_Mutex = 0;
670 virtual status_t createMmapBuffer(
673 virtual status_t getMmapPosition(struct audio_mmap_position* position) const
675 virtual status_t start(
678 virtual status_t stop(audio_port_handle_t handle) EXCLUDES_ThreadBase_Mutex = 0;
679 virtual status_t standby() EXCLUDES_ThreadBase_Mutex = 0;
680 virtual status_t getExternalPosition(uint64_t* position, int64_t* timeNanos) const
682 virtual status_t reportData(const void* buffer, size_t frameCount)
686 virtual void invalidateTracks(std::set<audio_port_handle_t>& portIds)
690 virtual void setRecordSilenced(audio_port_handle_t portId, bool silenced)
693 virtual sp<IAfMmapPlaybackThread> asIAfMmapPlaybackThread() { return nullptr; } in asIAfMmapPlaybackThread()
694 virtual sp<IAfMmapCaptureThread> asIAfMmapCaptureThread() { return nullptr; } in asIAfMmapCaptureThread()
697 class IAfMmapPlaybackThread : public virtual IAfMmapThread, public virtual VolumeInterface {
703 virtual AudioStreamOut* clearOutput() EXCLUDES_ThreadBase_Mutex = 0;
705 virtual status_t setPortsVolume(const std::vector<audio_port_handle_t>& portIds, float volume,
709 class IAfMmapCaptureThread : public virtual IAfMmapThread {
715 virtual AudioStreamIn* clearInput() EXCLUDES_ThreadBase_Mutex = 0;