public async Task<LgWebOsMouseService> GetMouse() { if (_mouseConnection != null) return _mouseConnection; var requestMessage = new RequestMessage("ssap://com.webos.service.networkinput/getPointerInputSocket", new { }); var s = await _connection.SendCommandAsync(requestMessage); var socketPath = (string)s.socketPath; _mouseConnection = new LgWebOsMouseService(new LgTvApiCore()); await _mouseConnection.Connect(socketPath); return _mouseConnection; }
public async Task<string> CloseApp(string appId) { var requestMessage = new RequestMessage("ssap://system.launcher/close", new { id = appId }); var response = await _connection.SendCommandAsync(requestMessage); return (string)response.sessionId; }
public async Task<IEnumerable<App>> GetApps() { _appList = new List<App>(); var requestMessage = new RequestMessage("launcher", "ssap://com.webos.applicationManager/listLaunchPoints"); var command = _connection.SendCommandAsync(requestMessage); var res = await command; foreach (var c in res.launchpoints) { _appList.Add(new App { Id = c.id, LaunchPointId = c.launchPointId, Title = c.title, Icon = c.icon }); } return _appList.OrderBy(e => e.Title); }
public async Task SetInput(string id) { var requestMessage = new RequestMessage("ssap://tv/switchInput", new { inputId = id }); await _connection.SendCommandAsync(requestMessage); }
public async Task<IEnumerable<ExternalInput>> GetInputList() { var requestMessage = new RequestMessage("input","ssap://tv/getExternalInputList"); var results = await _connection.SendCommandAsync(requestMessage); var l = new List<ExternalInput>(); foreach (var result in results) { l.Add(new ExternalInput(result.id, result.label) { Icon = result.icon }); } return l; }
public async Task<int> GetVolume() { // { // "type": "response", // "id": "status_1", // "payload": { // "muted": false, // "scenario": "mastervolume_tv_speaker", // "active": false, // "action": "requested", // "volume": 7, // "returnValue": true, // "subscribed": true // } // } var requestMessage = new RequestMessage("status", "ssap://audio/getVolume"); var o = await _connection.SendCommandAsync(requestMessage); return( (bool)o.muted) ? -1 :(int) o.volume; }
public async Task<Channel> GetChannel() { var requestMessage = new RequestMessage("channels", "ssap://tv/getCurrentChannel"); var command = _connection.SendCommandAsync(requestMessage); var res = await command; return new Channel() { Id = res.channelId, Name = res.channelName, Number = int.Parse(res.channelNumber) }; }
public async Task<bool> IsMuted() { var requestMessage = new RequestMessage("status", "ssap://audio/getStatus"); var command = _connection.SendCommandAsync(requestMessage); return (bool)(await command).mute; }
public async Task SetChannel(string channelId) { var requestMessage = new RequestMessage("ssap://tv/openChannel", new { channelId }); await _connection.SendCommandAsync(requestMessage); }
public async Task SetMute(bool value) { var requestMessage = new RequestMessage("ssap://audio/setMute", new { mute = value }); await _connection.SendCommandAsync(requestMessage); }
public async Task ChannelInfo() { var requestMessage = new RequestMessage("programinfo", "ssap://tv/getChannelProgramInfo"); await _connection.SendCommandAsync(requestMessage); }
public async Task VolumeUp() { var requestMessage = new RequestMessage("volumeup", "ssap://audio/volumeUp"); await _connection.SendCommandAsync(requestMessage); }
public async Task ShowToast() { var requestMessage = new RequestMessage("ssap://system.notifications/createToast",new {message = "Co tam u Ciebie?"}); await _connection.SendCommandAsync(requestMessage); }
public async Task<string> OpenWebBrowser(Uri uri) { var url = uri.ToString(); var requestMessage = new RequestMessage("ssap://system.launcher/open", new { target = url }); var response = await _connection.SendCommandAsync(requestMessage); return (string)response.sessionId; }
public async Task SetVolume(int value) { if (value >= 0 && value <= 100) { var requestMessage = new RequestMessage("ssap://audio/setVolume", new { volume = value }); await _connection.SendCommandAsync(requestMessage); } }
public async Task<string> LaunchYouTube(Uri uri) { var url = uri.ToString(); var requestMessage = new RequestMessage("ssap://system.launcher/launch", new { id = "youtube.leanback.v4", @params = new { contentTarget = url } }); var response = await _connection.SendCommandAsync(requestMessage); return (string)response.sessionId; }
public async Task<bool> IsTurnedOn3D() { //Response: { returnValue: true, status3D: { status: true, pattern: ā2Dto3Dā } } var requestMessage = new RequestMessage("status3D", "ssap://com.webos.service.tv.display/get3DStatus"); var o = await _connection.SendCommandAsync(requestMessage); return (bool)o.status3D.status; }
public async Task<IEnumerable<Channel>> ChannelList() { _channelList = new List<Channel>(); var requestMessage = new RequestMessage("channels", "ssap://tv/getChannelList"); var command = _connection.SendCommandAsync(requestMessage); var res = await command; foreach (var c in res.channelList) { _channelList.Add(new Channel { Id = c.channelId, Name = c.channelName, Number = int.Parse((string)c.channelNumber) }); } return _channelList.OrderBy(e => e.Number); }
public Task<dynamic> SendCommandAsync(RequestMessage message) { var rawMessage = new RawRequestMessage(message, ++_commandCount); var serialized = JsonConvert.SerializeObject(rawMessage, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore, ContractResolver = new CamelCasePropertyNamesContractResolver() }); return SendCommandAsync(rawMessage.Id, serialized); }