// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@available(added=7)
library fuchsia.castremotecontrol;

// LaunchError enumerates the various ways in which launching a
// remote control app may fail.
type LaunchError = strict enum {
    // The media session to control for the provided device could not be found.
    NOT_FOUND = 1;

    // A non-recoverable internal error occurred.
    INTERNAL = 2;
};

@discoverable
closed protocol Launcher {
    /// Launches the Cast remote control application for the device
    /// identified by |device_id|.
    strict Launch(struct {
        device_id string:MAX;
    }) -> () error LaunchError;
};
