1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #include <aws/medialive/model/HlsTimedMetadataId3Frame.h> 7 #include <aws/core/utils/HashingUtils.h> 8 #include <aws/core/Globals.h> 9 #include <aws/core/utils/EnumParseOverflowContainer.h> 10 11 using namespace Aws::Utils; 12 13 14 namespace Aws 15 { 16 namespace MediaLive 17 { 18 namespace Model 19 { 20 namespace HlsTimedMetadataId3FrameMapper 21 { 22 23 static const int NONE_HASH = HashingUtils::HashString("NONE"); 24 static const int PRIV_HASH = HashingUtils::HashString("PRIV"); 25 static const int TDRL_HASH = HashingUtils::HashString("TDRL"); 26 27 GetHlsTimedMetadataId3FrameForName(const Aws::String & name)28 HlsTimedMetadataId3Frame GetHlsTimedMetadataId3FrameForName(const Aws::String& name) 29 { 30 int hashCode = HashingUtils::HashString(name.c_str()); 31 if (hashCode == NONE_HASH) 32 { 33 return HlsTimedMetadataId3Frame::NONE; 34 } 35 else if (hashCode == PRIV_HASH) 36 { 37 return HlsTimedMetadataId3Frame::PRIV; 38 } 39 else if (hashCode == TDRL_HASH) 40 { 41 return HlsTimedMetadataId3Frame::TDRL; 42 } 43 EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); 44 if(overflowContainer) 45 { 46 overflowContainer->StoreOverflow(hashCode, name); 47 return static_cast<HlsTimedMetadataId3Frame>(hashCode); 48 } 49 50 return HlsTimedMetadataId3Frame::NOT_SET; 51 } 52 GetNameForHlsTimedMetadataId3Frame(HlsTimedMetadataId3Frame enumValue)53 Aws::String GetNameForHlsTimedMetadataId3Frame(HlsTimedMetadataId3Frame enumValue) 54 { 55 switch(enumValue) 56 { 57 case HlsTimedMetadataId3Frame::NONE: 58 return "NONE"; 59 case HlsTimedMetadataId3Frame::PRIV: 60 return "PRIV"; 61 case HlsTimedMetadataId3Frame::TDRL: 62 return "TDRL"; 63 default: 64 EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); 65 if(overflowContainer) 66 { 67 return overflowContainer->RetrieveOverflow(static_cast<int>(enumValue)); 68 } 69 70 return {}; 71 } 72 } 73 74 } // namespace HlsTimedMetadataId3FrameMapper 75 } // namespace Model 76 } // namespace MediaLive 77 } // namespace Aws 78