Lot of changes here.
1. check_classic_mac_basic.yml — update to latest macOS-latest 2. docker-on-push-tag-or-pr — dependant updates 3. FFTConvolver — fix a compilation warning when the DEBUG flag is turned off 4. Reorganise some source files — e.g. move most of the metadata stuff into a subdirectory 5. Remove unused special-purpose AirPlay 2 RC event handler. 6. Reorganise source files and source code relating to the standard event handler. 7. Check configuration settings a little more carefully to offer more meaningful diagnostics. 8. Add password to AirPlay 2 and reorganise initialisation to set AirPlay 2 flags accordingly. Also, remove redundant airplay_pin. 9. Remove redundant debug facility definitions from common.h 10. Make it possible to omit all the dacp stuff from a build. 11. Make it possible to omit metadata multicast from a build. 12. Add AP2-native metadata by setting bit 50 of features to true. 13. Improve stability when pre-empting an existing play session. 14. Fix a few compiler warnings in the pair_ap library. 15. Ensure that the audio format is known before starting synchronisation. 16. Improve handle_configure to set/clear a new config setting. Doesn’t seem to do anything… 17. Experimentally turn off bit 46 of AirPlay 2 features — seems to stop failing pair-verify attempts.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common.h"
|
||||
#include "config.h"
|
||||
#include <pthread.h>
|
||||
|
||||
typedef struct {
|
||||
pthread_mutex_t pc_queue_lock;
|
||||
pthread_cond_t pc_queue_item_added_signal;
|
||||
pthread_cond_t pc_queue_item_removed_signal;
|
||||
char *name;
|
||||
size_t item_size; // number of bytes in each item
|
||||
uint32_t count; // number of items in the queue
|
||||
uint32_t capacity; // maximum number of items
|
||||
uint32_t toq; // first item to take
|
||||
uint32_t eoq; // free space at end of queue
|
||||
void *items; // a pointer to where the items are actually stored
|
||||
} pc_queue; // producer-consumer queue
|
||||
|
||||
void pc_queue_init(pc_queue *the_queue, char *items, size_t item_size, uint32_t number_of_items,
|
||||
const char *name);
|
||||
|
||||
void pc_queue_delete(pc_queue *the_queue);
|
||||
int pc_queue_add_item(pc_queue *the_queue, const void *the_stuff, int block);
|
||||
int pc_queue_get_item(pc_queue *the_queue, void *the_stuff);
|
||||
Reference in New Issue
Block a user