file_stream.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * Copyright (c) 2018 Actions Semiconductor Co., Ltd
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. /**
  7. * @file file stream interface
  8. */
  9. #ifndef __FILE_STREAM_H__
  10. #define __FILE_STREAM_H__
  11. #include <stream.h>
  12. #ifdef CONFIG_FILE_SYSTEM
  13. #include <fs/fs.h>
  14. #endif
  15. /**
  16. * @defgroup file_stream_apis File Stream APIs
  17. * @ingroup stream_apis
  18. * @{
  19. */
  20. /**
  21. * @brief create file stream , return stream handle
  22. *
  23. * This routine provides create stream ,and return stream handle.
  24. * and stream state is STATE_INIT
  25. *
  26. * @param param create stream param, file stream is file url
  27. *
  28. * @return stream handle if create stream success
  29. * @return NULL if create stream failed
  30. */
  31. io_stream_t file_stream_create(const char *param);
  32. typedef struct {
  33. int file_count;
  34. void *usr_data;
  35. void (* get_file_name)(void *usr_data, int index, char *file_name, int file_name_buffer_size);
  36. }multi_file_info_t;
  37. /**
  38. * @brief create multi file stream, return stream handle
  39. *
  40. * This routine provides create a multi file stream that pretend multi files as one file, and return stream handle.
  41. * and stream state is STATE_INIT
  42. *
  43. * @param param create stream param
  44. *
  45. * @return stream handle if create stream success
  46. * @return NULL if create stream failed
  47. */
  48. io_stream_t multi_file_stream_create(multi_file_info_t *param);
  49. /**
  50. * @} end defgroup file_stream_apis
  51. */
  52. #endif /* __FILE_STREAM_H__ */