mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-14 00:04:13 +09:00
add functions for future use (will not change current behavior)
This commit is contained in:
@@ -44,6 +44,7 @@ struct airplay_video_s {
|
||||
int next_uri;
|
||||
int FCUP_RequestID;
|
||||
float start_position_seconds;
|
||||
float resume_position_seconds;
|
||||
playback_info_t *playback_info;
|
||||
// The local port of the airplay server on the AirPlay server
|
||||
unsigned short airplay_port;
|
||||
@@ -125,10 +126,18 @@ float get_start_position_seconds(airplay_video_t *airplay_video) {
|
||||
return airplay_video->start_position_seconds;
|
||||
}
|
||||
|
||||
float get_resume_position_seconds(airplay_video_t *airplay_video) {
|
||||
return airplay_video->resume_position_seconds;
|
||||
}
|
||||
|
||||
void set_start_position_seconds(airplay_video_t *airplay_video, float start_position_seconds) {
|
||||
airplay_video->start_position_seconds = start_position_seconds;
|
||||
}
|
||||
|
||||
|
||||
void set_resume_position_seconds(airplay_video_t *airplay_video, float resume_position_seconds) {
|
||||
airplay_video->resume_position_seconds = resume_position_seconds;
|
||||
}
|
||||
|
||||
void set_playback_uuid(airplay_video_t *airplay_video, const char *playback_uuid) {
|
||||
size_t len = strlen(playback_uuid);
|
||||
assert(len == 36);
|
||||
|
||||
@@ -28,7 +28,9 @@ typedef struct media_item_s media_item_t;
|
||||
|
||||
const char *get_apple_session_id(airplay_video_t *airplay_video);
|
||||
void set_start_position_seconds(airplay_video_t *airplay_video, float start_position_seconds);
|
||||
void set_resume_position_seconds(airplay_video_t *airplay_video, float resume_position_seconds);
|
||||
float get_start_position_seconds(airplay_video_t *airplay_video);
|
||||
float get_resume_position_seconds(airplay_video_t *airplay_video);
|
||||
void set_playback_uuid(airplay_video_t *airplay_video, const char *playback_uuid);
|
||||
const char *get_playback_uuid(airplay_video_t *airplay_video);
|
||||
void set_uri_prefix(airplay_video_t *airplay_video, char *uri_prefix, int uri_prefix_len);
|
||||
|
||||
32
lib/raop.c
32
lib/raop.c
@@ -852,6 +852,38 @@ void raop_destroy_airplay_video(raop_t *raop, int id) {
|
||||
}
|
||||
}
|
||||
}
|
||||
void raop_playlist_remove(raop_t *raop, void *opaque, float position_seconds) {
|
||||
airplay_video_t *airplay_video = (airplay_video_t *) opaque;
|
||||
|
||||
int id = -1;
|
||||
for (int i = 0; i < MAX_AIRPLAY_VIDEO; i++) {
|
||||
if (airplay_video == raop->airplay_video[i]) {
|
||||
id = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (id >= 0) {
|
||||
set_resume_position_seconds(airplay_video, position_seconds);
|
||||
raop->current_video = -1;
|
||||
float pos = get_resume_position_seconds(airplay_video);
|
||||
assert(pos == position_seconds);
|
||||
} else {
|
||||
logger_log(raop->logger, LOGGER_ERR, "raop_playlist_remove: failed to identify removed_video");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
int raop_current_playlist_delete(raop_t *raop) {
|
||||
int current_video = raop->current_video;
|
||||
assert (current_video < MAX_AIRPLAY_VIDEO);
|
||||
if (current_video >= 0) {
|
||||
raop_destroy_airplay_video(raop, current_video);
|
||||
raop->current_video = -1;
|
||||
} else {
|
||||
logger_log(raop->logger, LOGGER_ERR, "raop_current_playlist_delete: failed to identify current_playlist");
|
||||
}
|
||||
return current_video;
|
||||
}
|
||||
|
||||
uint64_t get_local_time() {
|
||||
return raop_ntp_get_local_time();
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "airplay_video.h"
|
||||
|
||||
#define RAOP_API
|
||||
#define MAX_AIRPLAY_VIDEO 2
|
||||
#define MAX_AIRPLAY_VIDEO 10
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -98,6 +98,7 @@ struct raop_callbacks_s {
|
||||
void (*on_video_rate) (void *cls, const float rate);
|
||||
void (*on_video_stop) (void *cls);
|
||||
void (*on_video_acquire_playback_info) (void *cls, playback_info_t *playback_video);
|
||||
void (*on_video_playlist_remove) (void *cls, void *airplay_video);
|
||||
};
|
||||
|
||||
typedef struct raop_callbacks_s raop_callbacks_t;
|
||||
@@ -128,7 +129,9 @@ RAOP_API void raop_destroy(raop_t *raop);
|
||||
RAOP_API void raop_remove_known_connections(raop_t * raop);
|
||||
RAOP_API void raop_remove_hls_connections(raop_t * raop);
|
||||
RAOP_API void raop_destroy_airplay_video(raop_t *raop, int id);
|
||||
|
||||
RAOP_API int raop_current_playlist_delete(raop_t *raop);
|
||||
RAOP_API void raop_playlist_remove(raop_t *raop, void *airplay_video, float position);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user