/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP
// This file is generated from clusters-Enums.h.zapt

#pragma once

#include <clusters/shared/Enums.h>
#include <cstdint>

namespace chip {
namespace app {
namespace Clusters {
namespace KeypadInput {

// Enum for CECKeyCodeEnum
enum class CECKeyCodeEnum : uint8_t {
  kSelect = 0x00,
  kUp = 0x01,
  kDown = 0x02,
  kLeft = 0x03,
  kRight = 0x04,
  kRightUp = 0x05,
  kRightDown = 0x06,
  kLeftUp = 0x07,
  kLeftDown = 0x08,
  kRootMenu = 0x09,
  kSetupMenu = 0x0A,
  kContentsMenu = 0x0B,
  kFavoriteMenu = 0x0C,
  kExit = 0x0D,
  kMediaTopMenu = 0x10,
  kMediaContextSensitiveMenu = 0x11,
  kNumberEntryMode = 0x1D,
  kNumber11 = 0x1E,
  kNumber12 = 0x1F,
  kNumber0OrNumber10 = 0x20,
  kNumbers1 = 0x21,
  kNumbers2 = 0x22,
  kNumbers3 = 0x23,
  kNumbers4 = 0x24,
  kNumbers5 = 0x25,
  kNumbers6 = 0x26,
  kNumbers7 = 0x27,
  kNumbers8 = 0x28,
  kNumbers9 = 0x29,
  kDot = 0x2A,
  kEnter = 0x2B,
  kClear = 0x2C,
  kNextFavorite = 0x2F,
  kChannelUp = 0x30,
  kChannelDown = 0x31,
  kPreviousChannel = 0x32,
  kSoundSelect = 0x33,
  kInputSelect = 0x34,
  kDisplayInformation = 0x35,
  kHelp = 0x36,
  kPageUp = 0x37,
  kPageDown = 0x38,
  kPower = 0x40,
  kVolumeUp = 0x41,
  kVolumeDown = 0x42,
  kMute = 0x43,
  kPlay = 0x44,
  kStop = 0x45,
  kPause = 0x46,
  kRecord = 0x47,
  kRewind = 0x48,
  kFastForward = 0x49,
  kEject = 0x4A,
  kForward = 0x4B,
  kBackward = 0x4C,
  kStopRecord = 0x4D,
  kPauseRecord = 0x4E,
  kReserved = 0x4F,
  kAngle = 0x50,
  kSubPicture = 0x51,
  kVideoOnDemand = 0x52,
  kElectronicProgramGuide = 0x53,
  kTimerProgramming = 0x54,
  kInitialConfiguration = 0x55,
  kSelectBroadcastType = 0x56,
  kSelectSoundPresentation = 0x57,
  kPlayFunction = 0x60,
  kPausePlayFunction = 0x61,
  kRecordFunction = 0x62,
  kPauseRecordFunction = 0x63,
  kStopFunction = 0x64,
  kMuteFunction = 0x65,
  kRestoreVolumeFunction = 0x66,
  kTuneFunction = 0x67,
  kSelectMediaFunction = 0x68,
  kSelectAvInputFunction = 0x69,
  kSelectAudioInputFunction = 0x6A,
  kPowerToggleFunction = 0x6B,
  kPowerOffFunction = 0x6C,
  kPowerOnFunction = 0x6D,
  kF1Blue = 0x71,
  kF2Red = 0x72,
  kF3Green = 0x73,
  kF4Yellow = 0x74,
  kF5 = 0x75,
  kData = 0x76,
  // All received enum values that are not listed above will be mapped
  // to kUnknownEnumValue. This is a helper enum value that should only
  // be used by code to process how it handles receiving and unknown
  // enum value. This specific should never be transmitted.
  kUnknownEnumValue = 14,
};

// Enum for StatusEnum
enum class StatusEnum : uint8_t {
  kSuccess = 0x00,
  kUnsupportedKey = 0x01,
  kInvalidKeyInCurrentState = 0x02,
  // All received enum values that are not listed above will be mapped
  // to kUnknownEnumValue. This is a helper enum value that should only
  // be used by code to process how it handles receiving and unknown
  // enum value. This specific should never be transmitted.
  kUnknownEnumValue = 3,
};

// Bitmap for Feature
enum class Feature : uint32_t {
  kNavigationKeyCodes = 0x1,
  kLocationKeys = 0x2,
  kNumberKeys = 0x4,
};
} // namespace KeypadInput
} // namespace Clusters
} // namespace app
} // namespace chip
