Skip to content

Commit

Permalink
Added option to control automation component properties
Browse files Browse the repository at this point in the history
  • Loading branch information
hkbinaurics committed Jun 6, 2024
1 parent 070d6ef commit 65c3b26
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,7 @@ SECTION PROPERTIES
GENERATE_ENTRIES_CONFIG_FILE = "no"; // Defaults to "no" if not present
GENERATE_ENTRIES_LINK_OBJECTS = "yes"; // Defaults to "no" if not present
ALLOWED_STATE_MASK = {"JVX_STATE_SELECTED", "JVX_STATE_ACTIVE", "JVX_STATE_PREPARED", "JVX_STATE_PROCESSING"};
CALLBACKS = {"get_processing_monitor"};
CALLBACK_GET_PREHOOK = "get_processing_monitor";
READ_WRITE_ACCESS = "JVX_PROPERTY_ACCESS_READ_ONLY";

SECTION number_overflows
{
Expand Down Expand Up @@ -99,6 +98,12 @@ SECTION PROPERTIES
TYPE = "JVX_DATAFORMAT_DATA";
INIT_SET = 0;
};
SECTION size_buffer
{
DESCRIPTION = "Size of the involved buffer [samples]"; // Defaults to NAME if not present
TYPE = "JVX_DATAFORMAT_SIZE";
INIT_SET = 0;
};
};

SECTION convert
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ CjvxAuNForwardBuffer::activate()
genForwardBuffer_node::register_all(static_cast<CjvxProperties*>(this));

genForwardBuffer_node::register_callbacks(static_cast<CjvxProperties*>(this),
set_bypass_buffer, set_buffer_mode, get_processing_monitor, this, nullptr);
set_bypass_buffer, set_buffer_mode, this, nullptr);
// Obtain the thread handle here
refThreads = reqInstTool<IjvxThreads>(
_common_set.theToolsHost,
Expand Down Expand Up @@ -386,6 +386,10 @@ CjvxAuNForwardBuffer::prepare_connect_icon(JVX_CONNECTION_FEEDBACK_TYPE(fdb))
JVX_MAX(node_inout._common_set_node_params_a_1io.buffersize, node_output._common_set_node_params_a_1io.buffersize) * 4, bs);
*/
bs = JVX_MAX(node_inout._common_set_node_params_a_1io.buffersize + node_output._common_set_node_params_a_1io.buffersize, bs);

// View buffersize in samples
genForwardBuffer_node::monitor.size_buffer.value = bs;

start_audiostack(
bs,
node_output._common_set_node_params_a_1io.number_channels,
Expand Down Expand Up @@ -1304,11 +1308,6 @@ CjvxAuNForwardBuffer::update_output_params()

// =================================================================================

JVX_PROPERTIES_FORWARD_C_CALLBACK_EXECUTE_FULL(CjvxAuNForwardBuffer, get_processing_monitor)
{
return JVX_NO_ERROR;
}

JVX_PROPERTIES_FORWARD_C_CALLBACK_EXECUTE_FULL(CjvxAuNForwardBuffer, set_bypass_buffer)
{
if (JVX_PROPERTY_CHECK_ID_CAT(ident.id, ident.cat, genForwardBuffer_node::config_select.bypass_buffer))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ class CjvxAuNForwardBuffer: public CjvxBareNode1ioRearrange,

jvxErrorType transfer_backward_ocon(jvxLinkDataTransferType tp, jvxHandle* data JVX_CONNECTION_FEEDBACK_TYPE_A(fdb))override;

JVX_PROPERTIES_FORWARD_C_CALLBACK_DECLARE(get_processing_monitor);
JVX_PROPERTIES_FORWARD_C_CALLBACK_DECLARE(set_bypass_buffer);
JVX_PROPERTIES_FORWARD_C_CALLBACK_DECLARE(set_buffer_mode);

Expand Down
10 changes: 9 additions & 1 deletion sources/jvxLibraries/jvx-helpers/src/HjvxHostsAndProperties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ jvxErrorType jvx_getReferencePropertiesObject(IjvxHost* theHost, jvx_propertyRef
case JVX_COMPONENT_PROCESSING_GROUP:
resL = ((IjvxDataConnectionGroup*)theTriple->theHdl)->request_hidden_interface(JVX_INTERFACE_PROPERTIES, reinterpret_cast<jvxHandle**>(&theTriple->theProps));
break;
case JVX_COMPONENT_SYSTEM_AUTOMATION:
resL = ((IjvxSimpleComponent*)theTriple->theHdl)->request_hidden_interface(JVX_INTERFACE_PROPERTIES, reinterpret_cast<jvxHandle**>(&theTriple->theProps));
break;
default:
resL = JVX_ERROR_ELEMENT_NOT_FOUND;
break;
Expand Down Expand Up @@ -91,7 +94,12 @@ jvxErrorType jvx_returnReferencePropertiesObject(IjvxHost* theHost, jvx_property
break;
case JVX_COMPONENT_PROCESSING_GROUP:
res = ((IjvxDataConnectionGroup*)theTriple->theHdl)->return_hidden_interface(JVX_INTERFACE_PROPERTIES, reinterpret_cast<jvxHandle*>(theTriple->theProps));
break; default:
break;
case JVX_COMPONENT_SYSTEM_AUTOMATION:
res = ((IjvxSimpleComponent*)theTriple->theHdl)->return_hidden_interface(JVX_INTERFACE_PROPERTIES, reinterpret_cast<jvxHandle*>(theTriple->theProps));
break;

default:
res = JVX_ERROR_ELEMENT_NOT_FOUND;
}
}
Expand Down

0 comments on commit 65c3b26

Please sign in to comment.