// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package media_sharing

type MediaSharing interface {
 // DisplayURL will cause the server to display whatever media is at
 // the given URL.  The server will rely on the ContentType response
 // header it gets when fetching the url to decide how to display
 // the media.
 DisplayUrl(url string) error

 // DisplayBytes will cause the server to display whatever media is
 // sent in the stream.  In the case of audio or movie media, the
 // media should be played while the data is streaming.  The mediaType
 // can be used by the server to decide how to display the media.
 DisplayBytes(mediaType string) stream<[]byte, _> error
}
