alsa-compress-offload: Add device object and udev based autodetection

As part of this, in alsa-udev.c, certain structures and variables referred
to as "device" are renamed to "card". Otherwise, there is ambiguity, since
"device" can mean a udev device, an SPA device, a compress-offload device,
a PCM device etc.

Also, replace "card id" with "card number" to emphasize that these integers
are not actually SPA object IDs.
This commit is contained in:
Carlos Rafael Giani 2023-08-30 23:52:14 +02:00 committed by Wim Taymans
parent ae4bff78a3
commit 8e6d070148
8 changed files with 1050 additions and 237 deletions

View file

@ -6,22 +6,12 @@
#include <sound/compress_offload.h>
#include <sound/compress_params.h>
#include <spa/support/log.h>
#include "compress-offload-api-util.h"
struct compress_offload_api_context;
#if defined(__GNUC__) && __GNUC__ >= 4
#define COMPR_API_PRIVATE __attribute__((visibility("hidden")))
#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
#define COMPR_API_PRIVATE __attribute__((visibility("hidden")))
#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
#define COMPR_API_PRIVATE __hidden
#else
#define COMPR_API_PRIVATE
#endif
/* This is a simple encapsulation of the ALSA Compress-Offload API
* and its ioctl calls. It is intentionally not using any PipeWire
* or SPA headers to allow for porting it or extracting it as its