player.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. *
  4. * BlueZ - Bluetooth protocol stack for Linux
  5. *
  6. * Copyright (C) 2006-2007 Nokia Corporation
  7. * Copyright (C) 2004-2009 Marcel Holtmann <marcel@holtmann.org>
  8. * Copyright (C) 2012-2012 Intel Corporation
  9. *
  10. *
  11. */
  12. typedef enum {
  13. PLAYER_ITEM_TYPE_AUDIO,
  14. PLAYER_ITEM_TYPE_VIDEO,
  15. PLAYER_ITEM_TYPE_FOLDER,
  16. PLAYER_ITEM_TYPE_INVALID,
  17. } player_item_type_t;
  18. typedef enum {
  19. PLAYER_FOLDER_TYPE_MIXED,
  20. PLAYER_FOLDER_TYPE_TITLES,
  21. PLAYER_FOLDER_TYPE_ALBUMS,
  22. PLAYER_FOLDER_TYPE_ARTISTS,
  23. PLAYER_FOLDER_TYPE_GENRES,
  24. PLAYER_FOLDER_TYPE_PLAYLISTS,
  25. PLAYER_FOLDER_TYPE_YEARS,
  26. PLAYER_FOLDER_TYPE_INVALID,
  27. } player_folder_type_t;
  28. struct media_player;
  29. struct media_item;
  30. struct media_player_callback {
  31. bool (*set_setting)(struct media_player *mp, const char *key,
  32. const char *value, void *user_data);
  33. int (*play)(struct media_player *mp, void *user_data);
  34. int (*pause)(struct media_player *mp, void *user_data);
  35. int (*stop)(struct media_player *mp, void *user_data);
  36. int (*next)(struct media_player *mp, void *user_data);
  37. int (*previous)(struct media_player *mp, void *user_data);
  38. int (*fast_forward)(struct media_player *mp, void *user_data);
  39. int (*rewind)(struct media_player *mp, void *user_data);
  40. int (*press)(struct media_player *mp, uint8_t avc_key,
  41. void *user_data);
  42. int (*hold)(struct media_player *mp, uint8_t avc_key,
  43. void *user_data);
  44. int (*release)(struct media_player *mp, void *user_data);
  45. int (*list_items)(struct media_player *mp, const char *name,
  46. uint32_t start, uint32_t end, void *user_data);
  47. int (*change_folder)(struct media_player *mp, const char *path,
  48. uint64_t uid, void *user_data);
  49. int (*search)(struct media_player *mp, const char *string,
  50. void *user_data);
  51. int (*play_item)(struct media_player *mp, const char *name,
  52. uint64_t uid, void *user_data);
  53. int (*add_to_nowplaying)(struct media_player *mp, const char *name,
  54. uint64_t uid, void *user_data);
  55. int (*total_items)(struct media_player *mp, const char *name,
  56. void *user_data);
  57. };
  58. struct media_player *media_player_controller_create(const char *path,
  59. uint16_t id);
  60. const char *media_player_get_path(struct media_player *mp);
  61. void media_player_destroy(struct media_player *mp);
  62. void media_player_set_duration(struct media_player *mp, uint32_t duration);
  63. void media_player_set_position(struct media_player *mp, uint32_t position);
  64. void media_player_set_setting(struct media_player *mp, const char *key,
  65. const char *value);
  66. const char *media_player_get_status(struct media_player *mp);
  67. void media_player_set_status(struct media_player *mp, const char *status);
  68. void media_player_set_metadata(struct media_player *mp,
  69. struct media_item *item, const char *key,
  70. void *data, size_t len);
  71. void media_player_set_type(struct media_player *mp, const char *type);
  72. void media_player_set_subtype(struct media_player *mp, const char *subtype);
  73. void media_player_set_name(struct media_player *mp, const char *name);
  74. void media_player_set_browsable(struct media_player *mp, bool enabled);
  75. bool media_player_get_browsable(struct media_player *mp);
  76. void media_player_set_searchable(struct media_player *mp, bool enabled);
  77. void media_player_set_folder(struct media_player *mp, const char *path,
  78. uint32_t items);
  79. void media_player_set_playlist(struct media_player *mp, const char *name);
  80. struct media_item *media_player_set_playlist_item(struct media_player *mp,
  81. uint64_t uid);
  82. struct media_item *media_player_create_folder(struct media_player *mp,
  83. const char *name,
  84. player_folder_type_t type,
  85. uint64_t uid);
  86. struct media_item *media_player_create_item(struct media_player *mp,
  87. const char *name,
  88. player_item_type_t type,
  89. uint64_t uid);
  90. void media_player_play_item_complete(struct media_player *mp, int err);
  91. void media_item_set_playable(struct media_item *item, bool value);
  92. void media_player_list_complete(struct media_player *mp, GSList *items,
  93. int err);
  94. void media_player_change_folder_complete(struct media_player *player,
  95. const char *path, uint64_t uid,
  96. int ret);
  97. void media_player_search_complete(struct media_player *mp, int ret);
  98. void media_player_total_items_complete(struct media_player *mp,
  99. uint32_t num_of_items);
  100. void media_player_set_callbacks(struct media_player *mp,
  101. const struct media_player_callback *cbs,
  102. void *user_data);