text: // 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 "content/public/common/desktop_media_id.h"
  
  namespace content {
  
  // static
  DesktopMediaID DesktopMediaID::Parse(const std::string& str) {
    if (str == "screen")
      return DesktopMediaID(TYPE_SCREEN, 0);
  
    std::string window_prefix("window:");
    if (StartsWithASCII(str, window_prefix, true)) {
      int64 id;
      if (!base::StringToInt64(str.substr(window_prefix.size()), &id))
        return DesktopMediaID(TYPE_NONE, 0);
      return DesktopMediaID(TYPE_WINDOW, id);
    }
  
    return DesktopMediaID(TYPE_NONE, 0);
  }
  
  std::string DesktopMediaID::ToString() {
    switch (type) {
      case TYPE_NONE:
        NOTREACHED();
        return std::string();
  
      case TYPE_SCREEN:
        return "screen";
  
      case TYPE_WINDOW:
        return "window:" + base::Int64ToString(id);
    }
    NOTREACHED();
    return std::string();
  }
  
  }  // namespace content
  