49 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| Convert the effectController function outputs to json format
 | |
| """
 | |
| 
 | |
| def responseHandler(effectController,rgbStripController,data):
 | |
|     if "startEffect" in data:
 | |
|         enabledRGBStrips = []
 | |
|         for rgbStrip in rgbStripController.getRGBStrips():
 | |
|             for rgbStripJsonArray in data['startEffect']['rgbStrips']:
 | |
|                 if rgbStrip.STRIP_UID in rgbStripJsonArray[0] and rgbStripJsonArray[1]:
 | |
|                     enabledRGBStrips.append(rgbStrip)
 | |
|         
 | |
|         effectController.startEffect(effectController.getEffects()[data['startEffect']['effect']],enabledRGBStrips,data['startEffect']['params'])
 | |
|     if "moveRGBStripToEffectThread" in data:
 | |
|         for rgbStrip in rgbStripController.getRGBStrips():
 | |
|             if rgbStrip.STRIP_UID in data['moveRGBStripToEffectThread']['rgbStrip']:
 | |
|                 effectController.moveRGBStripToEffectThread( \
 | |
|                     rgbStrip, \
 | |
|                     effectController.getEffectThreads()[data['moveRGBStripToEffectThread']['effectThread']] \
 | |
|                 )
 | |
|     if "effectThreadChangeEffectParam" in data:
 | |
|         effectController.updateEffectParameters(\
 | |
|             effectController.getEffectThreads()[data['effectThreadChangeEffectParam']['effectThread']], \
 | |
|             data['effectThreadChangeEffectParam']['params']
 | |
|         )
 | |
|     return 'ok'
 | |
| 
 | |
| # return json of all configured effects (except offEffect) with their paramDescriptions
 | |
| def getEffects(effectController):
 | |
|     result = {}
 | |
|     for x, effect in enumerate(effectController.getEffects()):
 | |
|         effectParams = {}
 | |
|         for y, effectParam in enumerate(effect.effectParameters):
 | |
|             effectParams[y] = {'index': y,'type': effectParam.type, 'name': effectParam.name, 'desc': effectParam.desc, 'options': effectParam.options}
 | |
|         result[x] = {'index': x, 'name': effect.name, 'desc': effect.desc, 'effectParams': effectParams}
 | |
|     return result
 | |
| 
 | |
| # return json of all running effectThreads with their active rgbStrips and params
 | |
| def getEffectThreads(effectController):
 | |
|     result = {}
 | |
|     for x, effectThread in enumerate(effectController.getEffectThreads()):
 | |
|         effectRGBStrips = {}
 | |
|         for effectRGBStrip in effectController.getEffectRGBStrips(effectThread):
 | |
|             effectRGBStrips[effectRGBStrip.STRIP_UID] = {'index': effectRGBStrip.STRIP_UID, 'name': effectRGBStrip.STRIP_NAME}
 | |
|         effectParams = {}
 | |
|         for z, effectParam in enumerate(effectThread.effectParameters):
 | |
|             effectParams[z] = {'index': z,'type': effectParam.type, 'name': effectParam.name, 'desc': effectParam.desc, 'options': effectParam.options, 'values': effectThread.effectParameterValues[z]}
 | |
|         result[x] = {'index': x, 'name': effectThread.name, 'desc': effectThread.desc,'activeRGBStips': effectRGBStrips, 'dump': str(effectThread), 'effectParams': effectParams}
 | |
|     return result |