+/**
+ * Set a configuration key in a session.
+ *
+ * @param sess The session to configure.
+ * @param key The configuration key (SRD_CONF_*).
+ * @param data The new value for the key, as a GVariant with GVariantType
+ * appropriate to that key. A floating reference can be passed
+ * in; its refcount will be sunk and unreferenced after use.
+ *
+ * @return SRD_OK upon success, a (negative) error code otherwise.
+ *
+ * @since 0.3.0
+ */
+SRD_API int srd_session_config_set(struct srd_session *sess, int key,
+ GVariant *data)
+{
+
+ if (session_is_valid(sess) != SRD_OK) {
+ srd_err("Invalid session.");
+ return SRD_ERR_ARG;
+ }
+
+ if (!g_variant_is_of_type(data, G_VARIANT_TYPE_UINT64)) {
+ srd_err("Value for key %d should be of type uint64.");
+ return SRD_ERR_ARG;
+ }
+
+ switch (key) {
+ case SRD_CONF_NUM_PROBES:
+ sess->num_probes = g_variant_get_uint64(data);
+ break;
+ case SRD_CONF_UNITSIZE:
+ sess->unitsize = g_variant_get_uint64(data);
+ break;
+ case SRD_CONF_SAMPLERATE:
+ sess->samplerate = g_variant_get_uint64(data);
+ break;
+ }
+
+ g_variant_unref(data);
+
+ return SRD_OK;
+}
+
+/**
+ * Send a chunk of logic sample data to a running decoder session.
+ *
+ * @param sess The session to use.
+ * @param start_samplenum The sample number of the first sample in this chunk.
+ * @param inbuf Pointer to sample data.
+ * @param inbuflen Length in bytes of the buffer.
+ *
+ * @return SRD_OK upon success, a (negative) error code otherwise.
+ *
+ * @since 0.1.0
+ */
+SRD_API int srd_session_send(struct srd_session *sess, uint64_t start_samplenum,
+ const uint8_t *inbuf, uint64_t inbuflen)