| 
					
				 | 
			
			
				@@ -241,23 +241,31 @@ def OptionBuffer_dec(data): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     data["idx"] -= 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     OptionBuffer_check(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def OptionBuffer_val(data): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def OptionBuffer_val(data,val=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ValueBuffer_clean(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     OptionBuffer_check(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #val = "RGB" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if val in data["options"]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print("set",val) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        idx = data["options"].index(val) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data["idx"] = idx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     idx= data["idx"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return data["options"][idx] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class OptionBuffer():# wrap function to object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def __init__(self,val="",options=[]): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.data = OptionBuffer_create_data(val="",options=options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #self._rep = self.__repr__() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def reset(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return OptionBuffer_reset(self.data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def inc(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return OptionBuffer_inc(self.data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def __repr__(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return "<lib.meta.OptionBuffer {} '{}'>".format(id(self),self.val()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def dec(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return OptionBuffer_dec(self.data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def val(self,val=""): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return OptionBuffer_val(self.data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def val(self,val=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return OptionBuffer_val(self.data,val=val) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_init(self,val): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return OptionBuffer_set_init(self.data,val) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -272,7 +280,7 @@ ATTR_GRP = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ATTR_GRP["POS"] = ["PAN","TILT"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ATTR_GRP["RGB"] = ["RED","GREEN","BLUE","AMBER","WHITE"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #ATTR_GRP["CMY"] = ["CYAN","MAGENTA","YELLOW"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-ATTR_GRP["BEAM"] = ["FOCUS","ZOOM","IRIS"] # GOBO1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ATTR_GRP["BEAM"] = ["DIM","FOCUS","ZOOM","IRIS"] # GOBO1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def Optionbuffer_create_ATTR_GRP(val=""): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     options = list(ATTR_GRP.keys()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -358,6 +366,15 @@ for i,f in fx3_grid_cfg.items(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     x.append("\n") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     print(":",x) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fx3.labels.extend(x) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#print("__ "*22) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#fx3_grid["GRP:1"].val("RGB") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#print([fx3_grid["GRP:1"].val()]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#print("_ _ "*22) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#fx3_grid["ATTR:1"].val("PAN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#print([fx3_grid["ATTR:1"].val()]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#print("__ "*22) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fx3.labels.extend([" "," "," "," "," ","\n"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fx3.labels.extend(["\n"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fx3.labels.extend([" ","PLAY","STOP","OFF"," ","\n"]) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -382,3 +399,5 @@ commands.labels =["\n","ESC","CFG-BTN","LABEL","-","DEL","-","\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ,"SELECT","FLASH","GO","-","MOVE","S-KEY","\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ,"BLIND","CLEAR","REC","EDIT","COPY",".","\n"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |