acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

lv_ffmpeg.h (2268B)

      1 /**
      2  * @file lv_ffmpeg.h
      3  *
      4  */
      5 #ifndef LV_FFMPEG_H
      6 #define LV_FFMPEG_H
      7 
      8 #ifdef __cplusplus
      9 extern "C" {
     10 #endif
     11 
     12 /*********************
     13  *      INCLUDES
     14  *********************/
     15 #include "../../../lvgl.h"
     16 #if LV_USE_FFMPEG != 0
     17 
     18 /*********************
     19  *      DEFINES
     20  *********************/
     21 
     22 /**********************
     23  *      TYPEDEFS
     24  **********************/
     25 struct ffmpeg_context_s;
     26 
     27 extern const lv_obj_class_t lv_ffmpeg_player_class;
     28 
     29 typedef struct {
     30     lv_img_t img;
     31     lv_timer_t * timer;
     32     lv_img_dsc_t imgdsc;
     33     bool auto_restart;
     34     struct ffmpeg_context_s * ffmpeg_ctx;
     35 } lv_ffmpeg_player_t;
     36 
     37 typedef enum {
     38     LV_FFMPEG_PLAYER_CMD_START,
     39     LV_FFMPEG_PLAYER_CMD_STOP,
     40     LV_FFMPEG_PLAYER_CMD_PAUSE,
     41     LV_FFMPEG_PLAYER_CMD_RESUME,
     42     _LV_FFMPEG_PLAYER_CMD_LAST
     43 } lv_ffmpeg_player_cmd_t;
     44 
     45 /**********************
     46  * GLOBAL PROTOTYPES
     47  **********************/
     48 
     49 /**
     50  * Register FFMPEG image decoder
     51  */
     52 void lv_ffmpeg_init(void);
     53 
     54 /**
     55  * Get the number of frames contained in the file
     56  * @param path image or video file name
     57  * @return Number of frames, less than 0 means failed
     58  */
     59 int lv_ffmpeg_get_frame_num(const char * path);
     60 
     61 /**
     62  * Create ffmpeg_player object
     63  * @param parent pointer to an object, it will be the parent of the new player
     64  * @return pointer to the created ffmpeg_player
     65  */
     66 lv_obj_t * lv_ffmpeg_player_create(lv_obj_t * parent);
     67 
     68 /**
     69  * Set the path of the file to be played
     70  * @param obj pointer to a ffmpeg_player object
     71  * @param path video file path
     72  * @return LV_RES_OK: no error; LV_RES_INV: can't get the info.
     73  */
     74 lv_res_t lv_ffmpeg_player_set_src(lv_obj_t * obj, const char * path);
     75 
     76 /**
     77  * Set command control video player
     78  * @param obj pointer to a ffmpeg_player object
     79  * @param cmd control commands
     80  */
     81 void lv_ffmpeg_player_set_cmd(lv_obj_t * obj, lv_ffmpeg_player_cmd_t cmd);
     82 
     83 /**
     84  * Set the video to automatically replay
     85  * @param obj pointer to a ffmpeg_player object
     86  * @param en true: enable the auto restart
     87  */
     88 void lv_ffmpeg_player_set_auto_restart(lv_obj_t * obj, bool en);
     89 
     90 /*=====================
     91  * Other functions
     92  *====================*/
     93 
     94 /**********************
     95  *      MACROS
     96  **********************/
     97 
     98 #endif /*LV_USE_FFMPEG*/
     99 
    100 #ifdef __cplusplus
    101 } /*extern "C"*/
    102 #endif
    103 
    104 #endif /*LV_FFMPEG_H*/