mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-01-24 02:55:45 +00:00
Depending on the configuration param coreAspectRatio, video streams may have automatic aspect ratio correction in the browser with the value provided by the cores themselves.
42 lines
1.4 KiB
Go
42 lines
1.4 KiB
Go
package coordinator
|
|
|
|
import (
|
|
"unsafe"
|
|
|
|
"github.com/giongto35/cloud-game/v3/pkg/api"
|
|
"github.com/giongto35/cloud-game/v3/pkg/config"
|
|
)
|
|
|
|
// CheckLatency sends a list of server addresses to the user
|
|
// and waits get back this list with tested ping times for each server.
|
|
func (u *User) CheckLatency(req api.CheckLatencyUserResponse) (api.CheckLatencyUserRequest, error) {
|
|
data, err := u.Send(api.CheckLatency, req)
|
|
if err != nil || data == nil {
|
|
return nil, err
|
|
}
|
|
dat := api.Unwrap[api.CheckLatencyUserRequest](data)
|
|
if dat == nil {
|
|
return api.CheckLatencyUserRequest{}, err
|
|
}
|
|
return *dat, err
|
|
}
|
|
|
|
// InitSession signals the user that the app is ready to go.
|
|
func (u *User) InitSession(wid string, ice []config.IceServer, games []api.AppMeta) {
|
|
u.Notify(api.InitSession, api.InitSessionUserResponse{
|
|
Ice: *(*[]api.IceServer)(unsafe.Pointer(&ice)), // don't do this at home
|
|
Games: games,
|
|
Wid: wid,
|
|
})
|
|
}
|
|
|
|
// SendWebrtcOffer sends SDP offer back to the user.
|
|
func (u *User) SendWebrtcOffer(sdp string) { u.Notify(api.WebrtcOffer, sdp) }
|
|
|
|
// SendWebrtcIceCandidate sends remote ICE candidate back to the user.
|
|
func (u *User) SendWebrtcIceCandidate(candidate string) { u.Notify(api.WebrtcIce, candidate) }
|
|
|
|
// StartGame signals the user that everything is ready to start a game.
|
|
func (u *User) StartGame(av *api.AppVideoInfo) {
|
|
u.Notify(api.StartGame, api.GameStartUserResponse{RoomId: u.w.RoomId, Av: av})
|
|
}
|