// 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/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_
