Project.h 957 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include <memory>
  3. #include <string>
  4. #include "Types.h"
  5. #include "WallpaperEngine/Assets/AssetLocator.h"
  6. namespace WallpaperEngine::Data::Model {
  7. using namespace WallpaperEngine::Assets;
  8. /**
  9. * Represents a wallpaper engine project
  10. */
  11. struct Project {
  12. enum Type { Type_Scene = 0, Type_Web = 1, Type_Video = 2, Type_Unknown = 3 };
  13. /** Wallpapers title */
  14. std::string title;
  15. /** Wallpaper's type */
  16. Type type;
  17. /** Workshop ID of the background or a negative id if not present */
  18. std::string workshopId;
  19. /** Indicates if the background uses audio processing or not */
  20. bool supportsAudioProcessing;
  21. /** All the available properties that the project defines for the user to change */
  22. Properties properties;
  23. /** The wallpaper this project defines */
  24. WallpaperUniquePtr wallpaper;
  25. /** Abstraction over asset loading to provide access to them */
  26. AssetLocatorUniquePtr assetLocator;
  27. };
  28. };