private void processOperation(String smSession, Operation operation) throws LayoutException {
		if (operation.getName().equals("setContent")) {
			VirtualScreen modifiedVirtualScreen = layouts.get(smSession).getVirtualScreen(operation.getParameterValue(VirtualScreen.ID));
			if(modifiedVirtualScreen == null)
				throw new LayoutException("VirtualScreen "+operation.getParameterValue(VirtualScreen.ID)+" does not exits. setContent " + operation.getParameterValue(VirtualScreen.RESOURCE) + " ignored.");
			modifiedVirtualScreen.setResource(parseResource(operation.getParameterValue(VirtualScreen.RESOURCE), modifiedVirtualScreen.getResource()));
			setContent(smSession, modifiedVirtualScreen);
		} else if (operation.getName().equals("reload")) {
			reload(smSession, layouts.get(smSession).getVirtualScreen(operation.getParameterValue(VirtualScreen.ID)));
		}  else if (operation.getName().equals("mute")) {
			// test first we can mute
			if(operation.getParameterValue(VirtualScreen.ID).equals("broadcast") && layouts.get(smSession).hasVirtualScreen(operation.getParameterValue(VirtualScreen.ID))) {
				VirtualScreen virtualscreen = layouts.get(smSession).getVirtualScreen(operation.getParameterValue(VirtualScreen.ID));
				mute(smSession, virtualscreen);
			}
		} else if (operation.getName().equals("unMute")) {
			// test first we can unmute
			if(operation.getParameterValue(VirtualScreen.ID).equals("broadcast") && layouts.get(smSession).hasVirtualScreen(operation.getParameterValue(VirtualScreen.ID))) {
				VirtualScreen virtualscreen = layouts.get(smSession).getVirtualScreen(operation.getParameterValue(VirtualScreen.ID));
				unMute(smSession, virtualscreen);
			}
		} else {
			logger.severe("Unsupported operation : " +operation.getName());
		}
	}