Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Overview

Sets status in other modules

Discussion

This module sets the status of other modules. This module differs from the original StatusSet in its use of backlash to inidicate relative hiearchy of the module to control. The usage here is consistent with the usage in the ParamSet module. See below for more detail.
Arguments:
MOD specifies the module/subsystem to be controlled. If a subsystem is specified, then this module will recursively act on all modules and subsystem within that subsystem. The name specified is relative to the level of the status_set_module.
The specified MOD name can either be an absolute or relative path from the status_set_module. The backslash character '\' before a module is used to denote a module one level up in hierachy. Multiple backslashes can be used to represent multiple levels of hierarchy. status_set_module is 'levelA.levelB.ss'

if MOD = 'foo'

then this denotes a relative path at current hierarchy. So this will attempt to locate a module with hierarchy name 'levelA.levelB.foo'
if MOD = '\bar'
then a module with hierarchy name 'levelA.bar' will try to be located.

if MOD = 'levelC.bar'

then a module with hierachy name 'levalA.levelB.levelC.bar' will try to be located

If MOD is empty, then this module will not do anything and will simply return. If MOD is invalid syntax or is not found in the system, this module will error out during prebuild.

Depending on the input, set the given module to:
bypass=1, mute=2, inactive=3, active=all else
Although there is no limitations to the number of channels or block size, only the 1st value of the 1st channel will be used for the status.

The setBehavior parameter specifies when other module's status should be set.

If setBehavior == 0, then the other module's status will be updated in the Set() function only when the status change detected.
If setBehavior == 1, then the other module's status will be updated instantly in the Process() function only if there is a change detected.
If setBehavior == 2, then the other module's status will be updated always in the Set() function.
If setBehavior == 3, then the other module's status will be updated always in the Process() function.

Type Definition

typedef struct _ModuleStatusSetV2
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    INT32 setBehavior;                            // Controls the behavior of setting status
    INT32 prevStatus;                             // Previous status
    INT32 nextStatus;                             // Status value from the input wire.
    INT32 numModules;                             // Total number of modules this module controls
    INT32* modIds;                                // Array to hold the object IDs of modules to set
    ModuleInstanceDescriptor ** modPtr;           // Points to the module to set
} ModuleStatusSetV2Class;

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

setBehavior

int

parameter

0

0

0:3

prevStatus

int

state

1

-1

Unrestricted

nextStatus

int

state

1

0

Unrestricted

numModules

int

state

1

1

Unrestricted

modIds

int*

state

1

[1 x 1]

Unrestricted

modPtr

ModuleInstanceDescriptor **

state

1

Unrestricted

Pins

Input Pins

                Name: in

         Description: status value

           Data type: int

       Channel range: Unrestricted

    Block size range: Unrestricted

   Sample rate range: Unrestricted

     Complex support: Real

MATLAB Usage

File Name: status_set_v2_module.m

 M=status_set_v2_module(NAME, MOD)
 Status Set Module. This module sets the status of other modules.
 Arguments:
    NAME - name of the module.
    MOD - specifies the module to be controlled. If a subsystem is
    specified, then this module will recursively act on all modules and
    subsystem within that subsystem. The name specified is relative to the
    level of the status_set_module.
   The specified MOD name can either be an absolute or relative path from
   the status_set_module. The backslash character ''\'' before a module
 is used to denote a module one level up in hierachy. Multiple backslashes
 can be used to represent multiple levels of hierarchy.
 Example:
      status_set_module is 'levelA.levelB.ss'
      if MOD = 'foo'
      then this denotes a relative path at current hierarchy. So this will
      attempt to locate a module with hierarchy name 'levelA.levelB.foo'
      if MOD = '\bar'
      then a module with hierarchy name 'levelA.bar' will try to be
      located.
      if MOD = 'levelC.bar'
      then a module with hierachy name 'LevelA.levelB.levelC.bar' will try
   to be located
    If MOD is empty, then this module will not do anything and will simply
    return.
    If MOD is invalid syntax or is not found in the system, this module 
    will error out during prebuild.
    Depending on the input, set the given module to 
    bypass=1, mute=2, inactive=3, active=all else
    Although there is no limitations to the number of channels or block
    size, only the 1st value of the 1st channel will be used for the
    status.

  • No labels