From 119b9927c5eb137e708eeabff49f3092a32abb98 Mon Sep 17 00:00:00 2001 From: Mikael Urankar Date: Wed, 28 Oct 2020 17:15:33 +0000 Subject: java/openjfx14: add new port OpenJFX is an open source, next generation client application platform for desktop and embedded systems based on JavaSE. It is a collaborative effort by many individuals and companies with the goal of producing a modern, efficient, and fully featured toolkit for developing rich client applications. PR: 248248 --- java/openjfx14/files/gstsndio.h | 78 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 java/openjfx14/files/gstsndio.h (limited to 'java/openjfx14/files/gstsndio.h') diff --git a/java/openjfx14/files/gstsndio.h b/java/openjfx14/files/gstsndio.h new file mode 100644 index 000000000000..77ec4e6f86a5 --- /dev/null +++ b/java/openjfx14/files/gstsndio.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2012 Alexandre Ratchov + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +#ifndef __GST_SNDIO_H__ +#define __GST_SNDIO_H__ + +#include +#include +#include +#include +#include + +enum +{ + PROP_0, + PROP_DEVICE, + PROP_VOLUME, + PROP_MUTE +}; + +#define GST_SNDIO_CAPS_STRING \ + "audio/x-raw, " \ + "format = (string) { " \ + "S8, U8, " \ + "S16LE, S16BE, U16LE, U16BE, " \ + "S32LE, S32BE, U32LE, U32BE, " \ + "S24_32LE, S24_32BE, U24_32LE, " \ + "U24_32BE, S24LE, S24BE, U24LE, U24BE " \ + "}, " \ + "layout = (string) interleaved, " \ + "rate = (int) [ 8000, 192000 ], " \ + "channels = (int) [1, 16]" + +/* + * data common to src and sink + */ +struct gstsndio { + struct sio_hdl *hdl; + gchar *device; + gint mode; + gint bpf; /* bytes per frame */ + gint delay; /* bytes stored in the audio fifo */ + guint volume; /* volume level */ + GstCaps *cur_caps; /* saved capabilities of opened device */ + GObject *obj; /* for logging */ +}; + +#define GST_SNDIO_DELAY(s) ((s)->delay / (s)->bpf) + +void gst_sndio_init (struct gstsndio *sio, GObject *obj); +void gst_sndio_finalize (struct gstsndio *sio); +GstCaps *gst_sndio_getcaps (struct gstsndio *sio, GstCaps * filter); +gboolean gst_sndio_open (struct gstsndio *sio, gint mode); +gboolean gst_sndio_close (struct gstsndio *sio); +gboolean gst_sndio_prepare (struct gstsndio *sio, GstAudioRingBufferSpec *spec); +gboolean gst_sndio_unprepare (struct gstsndio *sio); +void gst_sndio_set_property (struct gstsndio *sio, guint prop_id, + const GValue * value, GParamSpec * pspec); +void gst_sndio_get_property (struct gstsndio *sio, guint prop_id, + GValue * value, GParamSpec * pspec); + +int gst_sndio_setpar(gpointer sio, GstAudioRingBufferSpec * spec, + int mode, struct sio_hdl *hdl); +GstCaps *gst_sndio_caps (gpointer sio, int mode, struct sio_hdl *hdl); + +#endif -- cgit v1.2.3