Program Listing for File audioPlayer.hpp

Return to documentation for file (include\MainObjects\audioPlayer\audioPlayer.hpp)

#pragma once

#include "ManualMix.hpp"
#include "MixMachine.hpp"
#include "PDJE_Core_DataLine.hpp"
#include "PDJE_EXPORT_SETTER.hpp"
#include "audioCallbacks.hpp"
#include "audioRender.hpp"
#include <miniaudio.h>
class PDJE_API audioPlayer {
  private:
    ma_device  player;
    ma_context ctxt;

    audioRender renderer;

    std::vector<float> LFaust;

    std::vector<float> RFaust;

    audioEngineDataStruct engineDatas;

    ma_device_config
    DefaultInit(const unsigned int frameBufferSize);

    void
    ContextInit();

  public:
    std::string STATUS = "OK";

    const std::string
    GetStatus()
    {
        return STATUS;
    }

    bool
    Activate();

    bool
    Deactivate();

    void
    ChangeCursorPos(unsigned long long pos);

    unsigned long long
    GetConsumedFrames();
    FXControlPannel *
    GetFXControlPannel(const UNSANITIZED &title = "__PDJE__MAIN__");

    MusicControlPannel *
    GetMusicControlPannel();
    audioPlayer(litedb            &db,
                trackdata         &td,
                const unsigned int frameBufferSize,
                const bool         hasManual = false);
    audioPlayer(const unsigned int frameBufferSize);

    PDJE_CORE_DATA_LINE
    PullOutDataLine();

    ~audioPlayer();
};