#define flecs_player_STATIC
#ifndef FLECS_PLAYER_H
#define FLECS_PLAYER_H

/* This generated file contains includes for project dependencies */
/*
                                   )
                                  (.)
                                  .|.
                                  | |
                              _.--| |--._
                           .-';  ;`-'& ; `&.
                          \   &  ;    &   &_/
                           |"""---...---"""|
                           \ | | | | | | | /
                            `---.|.|.|.---'

 * This file is generated by bake.lang.c for your convenience. Headers of
 * dependencies will automatically show up in this file. Include bake_config.h
 * in your main project file. Do not edit! */

#ifndef FLECS_PLAYER_BAKE_CONFIG_H
#define FLECS_PLAYER_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>
#include <flecs_meta.h>

/* Convenience macro for exporting symbols */
#ifndef flecs_player_STATIC
#if flecs_player_EXPORTS && (defined(_MSC_VER) || defined(__MINGW32__))
  #define FLECS_PLAYER_API __declspec(dllexport)
#elif flecs_player_EXPORTS
  #define FLECS_PLAYER_API __attribute__((__visibility__("default")))
#elif defined _MSC_VER
  #define FLECS_PLAYER_API __declspec(dllimport)
#else
  #define FLECS_PLAYER_API
#endif
#else
  #define FLECS_PLAYER_API
#endif

#endif


ECS_ENUM(EcsPlayerState, {
    EcsPlayerPlay,
    EcsPlayerPause,
    EcsPlayerStop
});

ECS_STRUCT(EcsPlayer, {
    EcsPlayerState state;
    EcsPlayerState prev_state;
    float time_scale;
    ecs_entity_t play_pipeline;
    ecs_entity_t stop_pipeline;
    
ECS_PRIVATE
    ecs_snapshot_t *snapshot;
});

ECS_STRUCT(EcsTargetFps, {
    float target_fps;
});


#ifdef __cplusplus
extern "C" {
#endif

typedef struct FlecsPlayer {
    ECS_DECLARE_COMPONENT(EcsPlayer);
} FlecsPlayer;

FLECS_PLAYER_API
void FlecsPlayerImport(
    ecs_world_t *world);

#define FlecsPlayerImportHandles(handles)\
    ECS_IMPORT_COMPONENT(handles, EcsPlayer); 

#ifdef __cplusplus
}
#endif

#endif
