/** * Processa a senha da fila, dando um tempo entre as chamadas */ private void processQueue() { // se vocalizar estiver ativo, espera mais int duration = (main.getConfig().get(PainelConfig.KEY_SOUND_VOICE, Boolean.class).getValue()) ? 6000 : 3000; long time = Calendar.getInstance().getTimeInMillis(); if (time - lastUpdate > duration) { try { Senha senha = bufferChamada.remove(); LOG.info("Processando senha: " + senha.toString()); // volta para o layout de exibição de senha if (currentLayout == null || !currentLayout.equals(senhaLayout)) { changeLayout(senhaLayout); } playAlert(senha); senhaLayout.onSenha(senha); lastUpdate = Calendar.getInstance().getTimeInMillis(); } catch (Exception e) { } } }
public void chamaSenha(final Senha senha) { this.senha = senha; if (!senhas.contains(senha)) { senhas.add(senha); if (senhas.size() > MAX_SENHAS * 2) { senhas = senhas.subList(senhas.size() - MAX_SENHAS, senhas.size()); } } // adiciona senha na fila para ser processada depois bufferChamada.add(senha); LOG.info("Adicionada senha na fila de processamento: " + senha.toString()); }
private void playAlert(Senha senha) { AudioPlayer player = AudioPlayer.getInstance(); PainelConfig config = main.getConfig(); player.play(config.get(PainelConfig.KEY_SOUND_ALERT).getValue()); if (config.get(PainelConfig.KEY_SOUND_VOICE, Boolean.class).getValue()) { try { String lang = config.get(PainelConfig.KEY_LANGUAGE).getValue(); player.getVocalizador().vocalizar("senha", lang, true); player.getVocalizador().vocalizar(String.valueOf(senha.getSigla()), lang, true); String numero = String.valueOf(senha.getNumero()); for (int i = 0; i < numero.length(); i++) { player.getVocalizador().vocalizar(String.valueOf(numero.charAt(i)), lang, true); } player.getVocalizador().vocalizar("guiche", lang, true); numero = String.valueOf(senha.getNumeroGuiche()); for (int i = 0; i < numero.length(); i++) { player.getVocalizador().vocalizar(String.valueOf(numero.charAt(i)), lang, true); } } catch (Exception e1) { LOG.log(Level.SEVERE, Main._("erro_vocalizacao"), e1); } } }