#pragma once

#include <memory>

class AudioDevice;
class AudioSample;

class IAudioInterface
{
public:
    IAudioInterface() = default;

    virtual ~IAudioInterface() = default;

    virtual void play(AudioDevice* device, AudioSample* sample, unsigned duration) = 0;

protected:
    virtual void openDevice(AudioDevice* device) = 0;
};

using IAudioInterfacePtr = std::unique_ptr<IAudioInterface>;
