Program Listing for File block_subelement_dropper.hpp

Return to documentation for file (include/eat/process/block_subelement_dropper.hpp)

#pragma once

#include <string>
#include <vector>

#include "eat/process/adm_bw64.hpp"

namespace eat::process {

class BlockSubElementDropper : public framework::FunctionalAtomicProcess {
 public:
  enum class Droppable {
    Diffuse,
    ChannelLock,
    ObjectDivergence,
    JumpPosition,
    ScreenRef,
    Width,
    Depth,
    Height,
    Gain,
    Importance,
    Headlocked,
    HeadphoneVirtualise
  };

  BlockSubElementDropper(std::string const &name, std::vector<Droppable> params_to_drop);
  void process() override;

 private:
  framework::DataPortPtr<ADMData> in_axml;
  framework::DataPortPtr<ADMData> out_axml;
  std::vector<Droppable> to_drop;
};

std::vector<BlockSubElementDropper::Droppable> parse_droppable(std::vector<std::string> const &to_drop);

framework::ProcessPtr make_block_subelement_dropper(std::string const &name,
                                                    std::vector<BlockSubElementDropper::Droppable> to_drop);
}  // namespace eat::process