// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "media/cast/logging/logging_defines.h"

#include "base/logging.h"

#define ENUM_TO_STRING(enum) \
  case enum:                 \
    return #enum

namespace media {
namespace cast {

const char* CastLoggingToString(CastLoggingEvent event) {
  switch (event) {
    ENUM_TO_STRING(UNKNOWN);
    ENUM_TO_STRING(FRAME_CAPTURE_BEGIN);
    ENUM_TO_STRING(FRAME_CAPTURE_END);
    ENUM_TO_STRING(FRAME_ENCODED);
    ENUM_TO_STRING(FRAME_ACK_RECEIVED);
    ENUM_TO_STRING(FRAME_ACK_SENT);
    ENUM_TO_STRING(FRAME_DECODED);
    ENUM_TO_STRING(FRAME_PLAYOUT);
    ENUM_TO_STRING(PACKET_SENT_TO_NETWORK);
    ENUM_TO_STRING(PACKET_RETRANSMITTED);
    ENUM_TO_STRING(PACKET_RTX_REJECTED);
    ENUM_TO_STRING(PACKET_RECEIVED);
  }
  NOTREACHED();
  return "";
}

FrameEvent::FrameEvent()
    : width(0),
      height(0),
      size(0u),
      type(UNKNOWN),
      media_type(UNKNOWN_EVENT),
      key_frame(false),
      target_bitrate(0),
      encoder_cpu_utilization(-1.0),
      idealized_bitrate_utilization(-1.0) {}
FrameEvent::FrameEvent(const FrameEvent& other) = default;
FrameEvent::~FrameEvent() {}

PacketEvent::PacketEvent()
    : max_packet_id(0),
      packet_id(0),
      size(0),
      type(UNKNOWN),
      media_type(UNKNOWN_EVENT) {}
PacketEvent::~PacketEvent() {}

}  // namespace cast
}  // namespace media
