blob: 68931f406970b2dafc1b72209eff4acfea60a284 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#pragma once
#include <audio-utils/audio-stream.h>
#include <zircon/types.h>
#include "wav-common.h"
class WAVSource : public WAVCommon,
public audio::utils::AudioSource {
public:
WAVSource() { }
zx_status_t Initialize(const char* filename);
// AudioSource interface
zx_status_t GetFormat(AudioStream::Format* out_format) final;
zx_status_t GetFrames(void* buffer, uint32_t buf_space, uint32_t* out_packed) final;
bool finished() const final { return payload_played_ >= payload_len_; }
private:
uint32_t payload_len_ = 0;
uint32_t payload_played_ = 0;
AudioStream::Format audio_format_;
};