"alsarawmidi_stream_pair_open";
"alsarawmidi_stream_pair_get_substream_info";
"alsarawmidi_stream_pair_set_substream_params";
+ "alsarawmidi_stream_pair_get_substream_status";
"alsarawmidi_substream_params_get_type";
"alsarawmidi_substream_params_new";
#include "substream-info.h"
#include "substream-params.h"
+#include "substream-status.h"
#include <sound/asound.h>
void rawmidi_substream_params_refer_private(ALSARawmidiSubstreamParams *self,
struct snd_rawmidi_params **params);
+void rawmidi_substream_status_refer_private(ALSARawmidiSubstreamStatus *self,
+ struct snd_rawmidi_status **status);
+
G_END_DECLS
#endif
if (ioctl(priv->fd, SNDRV_RAWMIDI_IOCTL_PARAMS, params) < 0)
generate_error(error, errno);
}
+
+/**
+ * alsarawmidi_stream_pair_get_substream_status:
+ * @self: A #ALSARawmidiStreamPair.
+ * @direction: The direction of substream attached to the stream pair.
+ * @substream_status: (inout): The status of substream.
+ * @error: A #GError.
+ *
+ * Retrieve status of substream for given direction, which is attached to the
+ * pair of streams.
+ */
+void alsarawmidi_stream_pair_get_substream_status(ALSARawmidiStreamPair *self,
+ ALSARawmidiStreamDirection direction,
+ ALSARawmidiSubstreamStatus *const *substream_status,
+ GError **error)
+{
+ ALSARawmidiStreamPairPrivate *priv;
+ struct snd_rawmidi_status *status;
+
+ g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
+ g_return_if_fail(substream_status != NULL);
+ priv = alsarawmidi_stream_pair_get_instance_private(self);
+
+ rawmidi_substream_status_refer_private(*substream_status, &status);
+
+ status->stream = direction;
+ if (ioctl(priv->fd, SNDRV_RAWMIDI_IOCTL_STATUS, status) < 0)
+ generate_error(error, errno);
+}
#include <rawmidi/alsarawmidi-enums.h>
#include <rawmidi/substream-info.h>
#include <rawmidi/substream-params.h>
+#include <rawmidi/substream-status.h>
G_BEGIN_DECLS
ALSARawmidiSubstreamParams *substream_params,
GError **error);
+void alsarawmidi_stream_pair_get_substream_status(ALSARawmidiStreamPair *self,
+ ALSARawmidiStreamDirection direction,
+ ALSARawmidiSubstreamStatus *const *substream_status,
+ GError **error);
+
G_END_DECLS
#endif
// SPDX-License-Identifier: LGPL-3.0-or-later
-#include "substream-status.h"
-
-#include <sound/asound.h>
+#include "privates.h"
struct _ALSARawmidiSubstreamStatusPrivate {
struct snd_rawmidi_status status;
{
return g_object_new(ALSARAWMIDI_TYPE_SUBSTREAM_STATUS, NULL);
}
+
+void rawmidi_substream_status_refer_private(ALSARawmidiSubstreamStatus *self,
+ struct snd_rawmidi_status **status)
+{
+ ALSARawmidiSubstreamStatusPrivate *priv =
+ alsarawmidi_substream_status_get_instance_private(self);
+
+ *status = &priv->status;
+}
'open',
'get_substream_info',
'set_substream_params',
+ 'get_substream_status',
)
signals = ()