#ifndef REMOTING_HOST_DESKTOP_DISPLAY_LAYOUT_UTIL_H_
#define REMOTING_HOST_DESKTOP_DISPLAY_LAYOUT_UTIL_H_
#include <vector>
#include "base/memory/raw_ptr.h"
#include "remoting/proto/control.pb.h"
namespace remoting {
struct VideoTrackLayoutWithContext {
protocol::VideoTrackLayout layout;
raw_ptr<void> context;
};
struct DisplayLayoutDiff {
DisplayLayoutDiff();
DisplayLayoutDiff(const DisplayLayoutDiff&);
DisplayLayoutDiff(DisplayLayoutDiff&&);
~DisplayLayoutDiff();
std::vector<protocol::VideoTrackLayout> new_displays;
std::vector<VideoTrackLayoutWithContext> updated_displays;
std::vector<VideoTrackLayoutWithContext> removed_displays;
};
DisplayLayoutDiff CalculateDisplayLayoutDiff(
const std::vector<VideoTrackLayoutWithContext>& current_displays,
const protocol::VideoLayout& new_layout);
}
#endif