Cleaned up Queue system and REMOVED THE IMGUI DEBUG INTERFACEgit status

This commit is contained in:
2026-03-24 14:04:44 +10:00
parent c69585b0e9
commit 8c59fe5519
28 changed files with 16 additions and 70469 deletions
-48
View File
@@ -68,45 +68,6 @@ int OSSPQ_AppendToEnd(char* title, char* album, char* artist, char* id, char* st
return 0;
}
/*
OSSPQ_SongStruct* OSSPQ_PopFromFront() {
// Check if song queue is empty, if not, then pop oldest
if (OSSPQ_SongQueue.empty()) {
return NULL;
}
OSSPQ_SongObject songObject = OSSPQ_SongQueue.front();
OSSPQ_SongQueue.pop_front();
// Allocate, initialize, and fill C compatible song object
OSSPQ_SongStruct* songObjectC = (OSSPQ_SongStruct*)malloc(sizeof(OSSPQ_SongStruct));
songObjectC->title = NULL;
songObjectC->album = NULL;
songObjectC->artist = NULL;
songObjectC->id = NULL;
songObjectC->streamUrl = NULL;
songObjectC->coverArtUrl = NULL;
songObjectC->duration = 0;
songObjectC->mode = 0;
if (songObject.mode == OSSPQ_MODE_OPENSUBSONIC || songObject.mode == OSSPQ_MODE_LOCALFILE) {
songObjectC->title = strdup(songObject.title.c_str());
songObjectC->album = strdup(songObject.album.c_str());
songObjectC->artist = strdup(songObject.artist.c_str());
songObjectC->id = strdup(songObject.id.c_str());
songObjectC->streamUrl = strdup(songObject.streamUrl.c_str());
songObjectC->coverArtUrl = strdup(songObject.coverArtUrl.c_str());
songObjectC->duration = songObject.duration;
songObjectC->mode = songObject.mode;
} else if (songObject.mode == OSSPQ_MODE_INTERNETRADIO) {
songObjectC->title = strdup(songObject.title.c_str());
songObjectC->id = strdup(songObject.id.c_str());
songObjectC->streamUrl = strdup(songObject.streamUrl.c_str());
}
return songObjectC;
}
*/
int OSSPQ_getCurrentPos() {
return OSSPQ_currentPos;
}
@@ -169,12 +130,3 @@ void OSSPQ_FreeSongObjectC(OSSPQ_SongStruct* songObjectC) {
if (songObjectC->coverArtUrl != NULL) { free(songObjectC->coverArtUrl); }
if (songObjectC != NULL) { free(songObjectC); }
}
// TODO Bullshit functions for dealing with Imgui
char* internal_OSSPQ_GetTitleAtIndex(int idx) {
return (char*)OSSPQ_SongQueue[idx].title.c_str();
}
int internal_OSSPQ_GetItemCount() {
return OSSPQ_SongQueue.size();
}
+1 -8
View File
@@ -28,19 +28,12 @@ typedef struct {
} OSSPQ_SongStruct;
int OSSPQ_AppendToEnd(char* title, char* album, char* artist, char* id, char* streamUrl, char* coverArtUrl, long duration, int mode);
//OSSPQ_SongStruct* OSSPQ_PopFromFront();
void OSSPQ_FreeSongObjectC(OSSPQ_SongStruct* songObjectC);
// TODO
char* internal_OSSPQ_GetTitleAtIndex(int idx);
int internal_OSSPQ_GetItemCount();
// Testing
int OSSPQ_getCurrentPos();
int OSSPQ_getTotalPos();
int OSSPQ_advancePos();
int OSSPQ_backtrackPos();
OSSPQ_SongStruct* OSSPQ_getAtPos(int pos);
void OSSPQ_FreeSongObjectC(OSSPQ_SongStruct* songObjectC);
#ifdef __cplusplus
}
+9 -1
View File
@@ -120,7 +120,7 @@ void* OSSPlayer_ThrdInit(void* arg) {
// Poll play queue for new items to play
while (true) { // TODO use global bool instead
if (internal_OSSPQ_GetItemCount() != 0 && isPlaying == false) {
if (OSSPQ_getTotalPos() != 0 && isPlaying == false) {
// Player is not playing and a song is in the song queue
// Pull new song from the song queue
@@ -529,6 +529,14 @@ void OSSPlayer_DiscordRPC_SendPaused() {
discordrpc_struct_deinit(&discordrpc);
}
void OSSPlayer_DiscordRPC_SendIdle() {
discordrpc_data* discordrpc = NULL;
discordrpc_struct_init(&discordrpc);
discordrpc->state = DISCORDRPC_STATE_PAUSED;
discordrpc_update(&discordrpc);
discordrpc_struct_deinit(&discordrpc);
}
void OSSPlayer_DiscordRPC_SendPlaying(time_t startTime) {
OSSPQ_SongStruct* songObject = OSSPQ_getAtPos(OSSPQ_getCurrentPos());
if (songObject == NULL) {
+1
View File
@@ -41,6 +41,7 @@ float OSSPlayer_PitchFollow(float freq, float semitone);
float OSSPlayer_CentsToPSF(float cents);
void OSSPlayer_DiscordRPC_SendPaused();
void OSSPlayer_DiscordRPC_SendIdle();
void OSSPlayer_DiscordRPC_SendPlaying(time_t startTime);
#ifdef __cplusplus