// Copyright 2015 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.

#ifndef COBALT_MEDIA_BASE_MEDIA_RESOURCES_H_
#define COBALT_MEDIA_BASE_MEDIA_RESOURCES_H_

#include <string>

#include "base/strings/string16.h"
#include "build/build_config.h"
#include "cobalt/media/base/media_export.h"

namespace cobalt {
namespace media {

// The media layer can't access Chrome's resource bundle directly. This facility
// allows clients to provide indirect access.

// IDs that will get mapped to corresponding entries with IDS_ prefixes in
// chrome/app/generated_resources.grd.
enum MessageId {
  DEFAULT_AUDIO_DEVICE_NAME,
#if defined(OS_WIN)
  COMMUNICATIONS_AUDIO_DEVICE_NAME,
#endif
#if defined(OS_CHROMEOS)
  BEAMFORMING_ON_DEFAULT_AUDIO_INPUT_DEVICE_NAME,
  BEAMFORMING_OFF_DEFAULT_AUDIO_INPUT_DEVICE_NAME,
#endif
};

// Implementations are expected to convert MessageIds to generated_resources.grd
// IDs and extract the matching string from Chrome's resource bundle (e.g.
// through l10n_util::GetStringUTF16).
using LocalizedStringProvider = base::string16 (*)(MessageId message_id);

// Initializes the global LocalizedStringProvider function.
MEDIA_EXPORT void SetLocalizedStringProvider(LocalizedStringProvider func);

#if !defined(OS_IOS)
// The LocalizedStringProvider has probably not been initialized on iOS. This
// will give an early compile warning for clients attempting to use it.

// Returns a resource string corresponding to |message_id|. See l10n_util.h.
// Returns an empty string if the LocalizedStringProvider has not been
// initialized or if the ID is unrecognized.
std::string GetLocalizedStringUTF8(MessageId message_id);
base::string16 GetLocalizedStringUTF16(MessageId message_id);
#endif

}  // namespace media
}  // namespace cobalt

#endif  // COBALT_MEDIA_BASE_MEDIA_RESOURCES_H_
