]> git.alsa-project.org Git - tinycompress.git/commitdiff
include: tinycompress: Add compress_ops.h
authorRohit kumar <rohitkr@codeaurora.org>
Tue, 22 Sep 2020 10:34:58 +0000 (16:04 +0530)
committerRohit kumar <rohitkr@codeaurora.org>
Tue, 22 Sep 2020 12:24:50 +0000 (17:54 +0530)
Add compress_ops.h needed to support plugins. Compress_ops
can be used to jump to either hw compress node ops or to
virtual compress node ops.

Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
include/tinycompress/compress_ops.h [new file with mode: 0644]

diff --git a/include/tinycompress/compress_ops.h b/include/tinycompress/compress_ops.h
new file mode 100644 (file)
index 0000000..58bb433
--- /dev/null
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: (LGPL-2.1-only OR BSD-3-Clause) */
+/* Copyright (c) 2020 The Linux Foundation. All rights reserved. */
+
+#ifndef __COMPRESS_OPS_H__
+#define __COMPRESS_OPS_H__
+
+#include "sound/compress_params.h"
+#include "sound/compress_offload.h"
+#include "tinycompress.h"
+
+struct compress_ops {
+       void *(*open)(unsigned int card, unsigned int device,
+                       unsigned int flags, struct compr_config *config);
+       void (*close)(void *compress_data);
+       int (*get_hpointer)(void *compress_data,
+                       unsigned int *avail, struct timespec *tstamp);
+       int (*get_tstamp)(void *compress_data,
+                       unsigned int *samples, unsigned int *sampling_rate);
+       int (*write)(void *compress_data, const void *buf, size_t size);
+       int (*read)(void *compress_data, void *buf, size_t size);
+       int (*start)(void *compress_data);
+       int (*stop)(void *compress_data);
+       int (*pause)(void *compress_data);
+       int (*resume)(void *compress_data);
+       int (*drain)(void *compress_data);
+       int (*partial_drain)(void *compress_data);
+       int (*next_track)(void *compress_data);
+       int (*set_gapless_metadata)(void *compress_data,
+                       struct compr_gapless_mdata *mdata);
+       void (*set_max_poll_wait)(void *compress_data, int milliseconds);
+       void (*set_nonblock)(void *compress_data, int nonblock);
+       int (*wait)(void *compress_data, int timeout_ms);
+       bool (*is_codec_supported)(unsigned int card, unsigned int device,
+                       unsigned int flags, struct snd_codec *codec);
+       int (*is_compress_running)(void *compress_data);
+       int (*is_compress_ready)(void *compress_data);
+       const char *(*get_error)(void *compress_data);
+};
+
+#endif /* end of __COMPRESS_OPS_H__ */