aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2022-05-05 11:37:24 +0900
committer坂本 貴史 <o-takashi@sakamocchi.jp>2022-05-05 16:09:50 +0900
commit6efd86a53b55f3f6af422c17da152d393cba05d0 (patch)
tree6600947fdd28b86611b1fbc801c4305ba4f27111
parent11f1294466b534fa1dbd456809e939d4ca138d52 (diff)
downloadlibhinoko-6efd86a53b55f3f6af422c17da152d393cba05d0.tar.gz
fw_iso_ctx: code refactoring for state initialization
The state structure is initialized in inheritance object classes. This commit adds helper function to initialize it. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
-rw-r--r--src/fw_iso_ctx.c5
-rw-r--r--src/fw_iso_ctx_private.c11
-rw-r--r--src/fw_iso_ctx_private.h2
-rw-r--r--src/fw_iso_rx_multiple.c4
-rw-r--r--src/fw_iso_rx_single.c4
-rw-r--r--src/fw_iso_tx.c4
6 files changed, 24 insertions, 6 deletions
diff --git a/src/fw_iso_ctx.c b/src/fw_iso_ctx.c
index aede531..4a9f4d6 100644
--- a/src/fw_iso_ctx.c
+++ b/src/fw_iso_ctx.c
@@ -149,10 +149,9 @@ static void hinoko_fw_iso_ctx_class_init(HinokoFwIsoCtxClass *klass)
static void hinoko_fw_iso_ctx_init(HinokoFwIsoCtx *self)
{
- HinokoFwIsoCtxPrivate *priv =
- hinoko_fw_iso_ctx_get_instance_private(self);
+ HinokoFwIsoCtxPrivate *priv = hinoko_fw_iso_ctx_get_instance_private(self);
- priv->fd = -1;
+ fw_iso_ctx_state_init(priv);
}
gboolean fw_iso_ctx_handle_event_real(HinokoFwIsoCtx *inst, const union fw_cdev_event *event,
diff --git a/src/fw_iso_ctx_private.c b/src/fw_iso_ctx_private.c
index ba803b9..4754834 100644
--- a/src/fw_iso_ctx_private.c
+++ b/src/fw_iso_ctx_private.c
@@ -7,6 +7,17 @@
#include <sys/mman.h>
/**
+ * fw_iso_ctx_state_init:
+ * @state: A [struct@FwIsoCtxState].
+ *
+ * Initialize structure for state of isochronous context.
+ */
+void fw_iso_ctx_state_init(struct fw_iso_ctx_state *state)
+{
+ state->fd = -1;
+}
+
+/**
* fw_iso_ctx_state_allocate:
* @state: A [struct@FwIsoCtxState].
* @path: A path to any Linux FireWire character device.
diff --git a/src/fw_iso_ctx_private.h b/src/fw_iso_ctx_private.h
index 64597b4..dee46eb 100644
--- a/src/fw_iso_ctx_private.h
+++ b/src/fw_iso_ctx_private.h
@@ -43,6 +43,8 @@ struct fw_iso_ctx_state {
#define STOPPED_SIGNAL_NEME "stopped"
+void fw_iso_ctx_state_init(struct fw_iso_ctx_state *state);
+
gboolean fw_iso_ctx_state_allocate(struct fw_iso_ctx_state *state, const char *path,
HinokoFwIsoCtxMode mode, HinokoFwScode scode, guint channel,
guint header_size, GError **error);
diff --git a/src/fw_iso_rx_multiple.c b/src/fw_iso_rx_multiple.c
index 88fc809..d677da1 100644
--- a/src/fw_iso_rx_multiple.c
+++ b/src/fw_iso_rx_multiple.c
@@ -125,7 +125,9 @@ static void hinoko_fw_iso_rx_multiple_class_init(HinokoFwIsoRxMultipleClass *kla
static void hinoko_fw_iso_rx_multiple_init(HinokoFwIsoRxMultiple *self)
{
- return;
+ HinokoFwIsoRxMultiplePrivate *priv = hinoko_fw_iso_rx_multiple_get_instance_private(self);
+
+ fw_iso_ctx_state_init(&priv->state);
}
static void fw_iso_rx_multiple_stop(HinokoFwIsoCtx *inst)
diff --git a/src/fw_iso_rx_single.c b/src/fw_iso_rx_single.c
index ccacfaf..f13ac1f 100644
--- a/src/fw_iso_rx_single.c
+++ b/src/fw_iso_rx_single.c
@@ -84,7 +84,9 @@ static void hinoko_fw_iso_rx_single_class_init(HinokoFwIsoRxSingleClass *klass)
static void hinoko_fw_iso_rx_single_init(HinokoFwIsoRxSingle *self)
{
- return;
+ HinokoFwIsoRxSinglePrivate *priv = hinoko_fw_iso_rx_single_get_instance_private(self);
+
+ fw_iso_ctx_state_init(&priv->state);
}
static void fw_iso_rx_single_stop(HinokoFwIsoCtx *inst)
diff --git a/src/fw_iso_tx.c b/src/fw_iso_tx.c
index f682fee..2adcf86 100644
--- a/src/fw_iso_tx.c
+++ b/src/fw_iso_tx.c
@@ -75,7 +75,9 @@ static void hinoko_fw_iso_tx_class_init(HinokoFwIsoTxClass *klass)
static void hinoko_fw_iso_tx_init(HinokoFwIsoTx *self)
{
- return;
+ HinokoFwIsoTxPrivate *priv = hinoko_fw_iso_tx_get_instance_private(self);
+
+ fw_iso_ctx_state_init(&priv->state);
}
static void fw_iso_tx_stop(HinokoFwIsoCtx *inst)