001/* 002 * Copyright (c) 2011-2017 Nexmo Inc 003 * 004 * Permission is hereby granted, free of charge, to any person obtaining a copy 005 * of this software and associated documentation files (the "Software"), to deal 006 * in the Software without restriction, including without limitation the rights 007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 008 * copies of the Software, and to permit persons to whom the Software is 009 * furnished to do so, subject to the following conditions: 010 * 011 * The above copyright notice and this permission notice shall be included in 012 * all copies or substantial portions of the Software. 013 * 014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 020 * THE SOFTWARE. 021 */ 022package com.nexmo.client.voice; 023 024import com.fasterxml.jackson.annotation.JsonCreator; 025import com.fasterxml.jackson.annotation.JsonValue; 026 027import java.util.HashMap; 028import java.util.Map; 029 030/** 031 * Voice used to deliver text to a {@link Call} in a {@link TalkRequest}. 032 */ 033 034public enum VoiceName { 035 SALLI("Salli"), 036 JOEY("Joey"), 037 MATTHEW("Matthew"), 038 NAJA("Naja"), 039 MADS("Mads"), 040 MARLENE("Marlene"), 041 HANS("Hans"), 042 NICOLE("Nicole"), 043 RUSSELL("Russell"), 044 AMY("Amy"), 045 BRIAN("Brian"), 046 EMMA("Emma"), 047 GWYNETH("Gwyneth"), 048 GERAINT("Geraint"), 049 RAVEENA("Raveena"), 050 CHIPMUNK("Chipmunk"), 051 ERIC("Eric"), 052 IVY("Ivy"), 053 JENNIFER("Jennifer"), 054 JUSTIN("Justin"), 055 KENDRA("Kendra"), 056 KIMBERLY("Kimberly"), 057 CONCHITA("Conchita"), 058 ENRIQUE("Enrique"), 059 PENELOPE("Penelope"), 060 MIGUEL("Miguel"), 061 CHANTAL("Chantal"), 062 CELINE("Celine"), 063 MATHIEU("Mathieu"), 064 DORA("Dora"), 065 KARL("Karl"), 066 CARLA("Carla"), 067 GIORGIO("Giorgio"), 068 LIV("Liv"), 069 LOTTE("Lotte"), 070 RUBEN("Ruben"), 071 AGNIESZKA("Agnieszka"), 072 JACEK("Jacek"), 073 EWA("Ewa"), 074 JAN("Jan"), 075 MAJA("Maja"), 076 VITORIA("Vitoria"), 077 RICARDO("Ricardo"), 078 CRISTIANO("Cristiano"), 079 INES("Ines"), 080 CARMEN("Carmen"), 081 MAXIM("Maxim"), 082 TATYANA("Tatyana"), 083 ASTRID("Astrid"), 084 FILIZ("Filiz"), 085 MIZUKI("Mizuki"), 086 SEOYEON("Seoyeon"), 087 LAILA("Laila"), 088 MAGED("Maged"), 089 TARIK("Tarik"), 090 DAMAYANTI("Damayanti"), 091 MIREN("Miren"), 092 SIN_JI("Sin-Ji"), 093 JORDI("Jordi"), 094 MONTSERRAT("Montserrat"), 095 IVETA("Iveta"), 096 ZUZANA("Zuzana"), 097 TESSA("Tessa"), 098 SATU("Satu"), 099 MELINA("Melina"), 100 NIKOS("Nikos"), 101 CARMIT("Carmit"), 102 LEKHA("Lekha"), 103 MARISKA("Mariska"), 104 SORA("Sora"), 105 TIAN_TIAN("Tian-Tian"), 106 MEI_JIA("Mei-Jia"), 107 NORA("Nora"), 108 HENRIK("Henrik"), 109 LUCIANA("Luciana"), 110 FELIPE("Felipe"), 111 CATARINA("Catarina"), 112 JOANA("Joana"), 113 IOANA("Ioana"), 114 LAURA("Laura"), 115 ALVA("Alva"), 116 OSKAR("Oskar"), 117 KANYA("Kanya"), 118 CEM("Cem"), 119 YELDA("Yelda"), 120 EMPAR("Empar"), 121 UNKNOWN("Unknown"); 122 123 private static final Map<String, VoiceName> voiceNameIndex = new HashMap<>(); 124 125 static { 126 for (VoiceName voiceName : VoiceName.values()) { 127 voiceNameIndex.put(voiceName.name(), voiceName); 128 } 129 } 130 131 private String displayName; 132 133 VoiceName(String displayName) { 134 this.displayName = displayName; 135 } 136 137 @Override 138 public String toString() { 139 return displayName; 140 } 141 142 @JsonCreator 143 public static VoiceName fromString(String name) { 144 VoiceName foundVoiceName = voiceNameIndex.get(name.toUpperCase()); 145 return (foundVoiceName != null) ? foundVoiceName : UNKNOWN; 146 } 147 148 @JsonValue 149 public String getDisplayName() { 150 return displayName; 151 } 152}