Skip to content

Instantly share code, notes, and snippets.

@raganmd
Created December 14, 2017 13:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save raganmd/5e4e3f431b710a6848978cb5d6a00e03 to your computer and use it in GitHub Desktop.
Save raganmd/5e4e3f431b710a6848978cb5d6a00e03 to your computer and use it in GitHub Desktop.
# import any necessary modules
import socket
# define some variables
pos_x = 3300
pos_y = 0
replicator_table = op( 'table_replicator_info' )
system_config = mod( 'text_data' ).uri
displays = mod( 'text_data' ).displays
local_ip = socket.gethostbyname( socket.gethostname() )
default_ip = op( 'text_default_ip' ).text
local_config = {}
container_COMPs = parent().findChildren( type = COMP , depth = 1 )
# clear contents of replicator_table
replicator_table.clear()
# delete existing container COMPs
for items in container_COMPs:
if op( items ).name != 'container_presets':
op( items ).destroy()
else:
pass
# Test for local_ip in system config
in_system_config = local_ip in system_config
# if our IP matches with a URI in the system config, then we
# fill our dictionary with keys based on the system config file
if in_system_config == True:
local_config[ 'name' ] = system_config[ local_ip ][ 'name' ]
local_config[ 'role' ] = system_config[ local_ip ][ 'role' ]
local_config[ 'displays' ] = system_config[ local_ip ][ 'displays' ]
local_config[ 'uri' ] = local_ip
# if our IP doesn't match our system config file, then we fill our
# dictionary with keys based on the default IP address, which is
# entered in the text dat called 'text_default_ip'
else:
# assign ip address
local_ip = default_ip
local_config[ 'name' ] = system_config[ local_ip ][ 'name' ]
local_config[ 'role' ] = system_config[ local_ip ][ 'role' ]
local_config[ 'displays' ] = system_config[ local_ip ][ 'displays' ]
local_config[ 'uri' ] = local_ip
# fill table with display information
for items in local_config[ 'displays' ]:
replicator_table.appendRow( [
items ,
displays[ items ][ 'width' ] ,
displays[ items ][ 'height' ] ,
displays[ items ][ 'orientation' ]
] )
# check and correct height / width based on orientation flag
for row in range( replicator_table.numRows ):
# create a temporary variable to store the width and height of the display
width_height = [ replicator_table[ row , 1 ].val , replicator_table[ row , 2 ].val ]
# test for orientation flag
# if true, swap height and width
if replicator_table[ row , 3 ] == 1:
replicator_table[ row , 1 ] = width_height[ 1 ]
replicator_table[ row , 2 ] = width_height[ 0 ]
# if false, we pass and do nothing
else:
pass
# create container COMPs based on our replicator table
for row in range( replicator_table.numRows ):
# create our new container COMP, give it a name from our replciator table
new_op = parent().create( containerCOMP , replicator_table[ row , 0 ] )
# set the x position of the new container
new_op.nodeX = pos_x
# set the y position of the new container
new_op.nodeY = pos_y
# set the width of the new node based on the replicator table
new_op.par.w = replicator_table[ row , 1 ]
# set the height of the new node based on the replicator table
new_op.par.h = replicator_table[ row , 2 ]
# turn on the viewer flag
new_op.viewer = True
# increment the y position for the next loop
pos_y -= 200
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment