private void chanInfoUpdateButton_Click(object sender, EventArgs e) { var item = channelList.SelectedItem as ChannelListItem; if (item != null) { var channel = item.Channel; var is_tracker = peerCast.BroadcastID == channel.BroadcastID; if (!is_tracker) { return; } var info = new AtomCollection(channel.ChannelInfo.Extra); if (info != null) { info.SetChanInfoComment(chanInfoComment.Text); info.SetChanInfoGenre(chanInfoGenre.Text); info.SetChanInfoDesc(chanInfoDesc.Text); info.SetChanInfoURL(chanInfoContactURL.Text); info.SetChanInfoComment(chanInfoComment.Text); channel.ChannelInfo = new ChannelInfo(info); } var track = new AtomCollection(channel.ChannelTrack.Extra); if (track != null) { track.SetChanTrackAlbum(chanTrackAlbum.Text); track.SetChanTrackCreator(chanTrackArtist.Text); track.SetChanTrackTitle(chanTrackTitle.Text); track.SetChanTrackURL(chanTrackContactURL.Text); channel.ChannelTrack = new ChannelTrack(track); } } }
private void BroadcastStart_Click(object sender, EventArgs args) { Uri source; if (Uri.TryCreate(bcStreamUrl.Text, UriKind.Absolute, out source)) { StreamSource = source; } else { StreamSource = null; } var reader = bcContentType.SelectedItem as ContentReaderItem; if (reader!=null) ContentReaderFactory = reader.ContentReaderFactory; var yp = bcYP.SelectedItem as YellowPageItem; if (yp!=null) YellowPage = yp.YellowPage; var info = new AtomCollection(); int bitrate; if (Int32.TryParse(bcBitrate.Text, out bitrate)) { info.SetChanInfoBitrate(bitrate); } info.SetChanInfoName(bcChannelName.Text); info.SetChanInfoGenre(bcGenre.Text); info.SetChanInfoDesc(bcDescription.Text); info.SetChanInfoComment(bcComment.Text); info.SetChanInfoURL(bcContactUrl.Text); ChannelInfo = new ChannelInfo(info); var track = new AtomCollection(); track.SetChanTrackTitle(bcTrackTitle.Text); track.SetChanTrackGenre(bcTrackGenre.Text); track.SetChanTrackAlbum(bcAlbum.Text); track.SetChanTrackCreator(bcCreator.Text); track.SetChanTrackURL(bcTrackURL.Text); ChannelTrack = new ChannelTrack(track); if (StreamSource!=null && ContentReaderFactory!=null && !String.IsNullOrEmpty(ChannelInfo.Name)) { DialogResult = DialogResult.OK; } }
private void SetChannelInfo(string channelId, JObject info, JObject track) { var channel = GetChannel(channelId); if (channel != null && channel.BroadcastID == PeerCast.BroadcastID) { if (info != null) { var new_info = new AtomCollection(channel.ChannelInfo.Extra); if (info["name"] != null) { new_info.SetChanInfoName((string)info["name"]); } if (info["url"] != null) { new_info.SetChanInfoURL((string)info["url"]); } if (info["genre"] != null) { new_info.SetChanInfoGenre((string)info["genre"]); } if (info["desc"] != null) { new_info.SetChanInfoDesc((string)info["desc"]); } if (info["comment"] != null) { new_info.SetChanInfoComment((string)info["comment"]); } channel.ChannelInfo = new ChannelInfo(new_info); } if (track != null) { var new_track = new AtomCollection(channel.ChannelTrack.Extra); if (track["name"] != null) { new_track.SetChanTrackTitle((string)track["name"]); } if (track["genre"] != null) { new_track.SetChanTrackGenre((string)track["genre"]); } if (track["album"] != null) { new_track.SetChanTrackAlbum((string)track["album"]); } if (track["creator"] != null) { new_track.SetChanTrackCreator((string)track["creator"]); } if (track["url"] != null) { new_track.SetChanTrackURL((string)track["url"]); } channel.ChannelTrack = new ChannelTrack(new_track); } } }
private ChannelTrack CreateChannelTrack(BroadcastViewModel viewModel) { var collection = new AtomCollection(); collection.SetChanTrackTitle(viewModel.TrackTitle); collection.SetChanTrackGenre(viewModel.TrackGenre); collection.SetChanTrackAlbum(viewModel.TrackAlbum); collection.SetChanTrackCreator(viewModel.TrackArtist); collection.SetChanTrackURL(viewModel.TrackUrl); return(new ChannelTrack(collection)); }
private void BroadcastStart_Click(object sender, EventArgs args) { Uri source; if (Uri.TryCreate(bcStreamUrl.Text, UriKind.Absolute, out source)) { StreamSource = source; } else { StreamSource = null; } var reader = bcContentType.SelectedItem as ContentReaderItem; if (reader != null) { ContentReaderFactory = reader.ContentReaderFactory; } var yp = bcYP.SelectedItem as YellowPageItem; if (yp != null) { YellowPage = yp.YellowPage; } var info = new AtomCollection(); int bitrate; if (Int32.TryParse(bcBitrate.Text, out bitrate)) { info.SetChanInfoBitrate(bitrate); } info.SetChanInfoName(bcChannelName.Text); info.SetChanInfoGenre(bcGenre.Text); info.SetChanInfoDesc(bcDescription.Text); info.SetChanInfoComment(bcComment.Text); info.SetChanInfoURL(bcContactUrl.Text); ChannelInfo = new ChannelInfo(info); var track = new AtomCollection(); track.SetChanTrackTitle(bcTrackTitle.Text); track.SetChanTrackGenre(bcTrackGenre.Text); track.SetChanTrackAlbum(bcAlbum.Text); track.SetChanTrackCreator(bcCreator.Text); track.SetChanTrackURL(bcTrackURL.Text); ChannelTrack = new ChannelTrack(track); if (StreamSource != null && ContentReaderFactory != null && !String.IsNullOrEmpty(ChannelInfo.Name)) { DialogResult = DialogResult.OK; } }
public ChannelInfoViewModel() { update = new Command(() => { var info = new AtomCollection(channel.ChannelInfo.Extra); info.SetChanInfoGenre(genre); info.SetChanInfoDesc(description); info.SetChanInfoURL(contactUrl); info.SetChanInfoComment(comment); channel.ChannelInfo = new ChannelInfo(info); var track = new AtomCollection(channel.ChannelTrack.Extra); track.SetChanTrackAlbum(trackAlbum); track.SetChanTrackCreator(trackArtist); track.SetChanTrackTitle(trackTitle); track.SetChanTrackGenre(trackGenre); track.SetChanTrackURL(trackUrl); channel.ChannelTrack = new ChannelTrack(track); IsModified = false; }, () => channel!=null && IsTracker && IsModified); }
public ChannelInfoViewModel() { update = new Command(() => { var info = new AtomCollection(channel.ChannelInfo.Extra); info.SetChanInfoGenre(genre); info.SetChanInfoDesc(description); info.SetChanInfoURL(contactUrl); info.SetChanInfoComment(comment); channel.ChannelInfo = new ChannelInfo(info); var track = new AtomCollection(channel.ChannelTrack.Extra); track.SetChanTrackAlbum(trackAlbum); track.SetChanTrackCreator(trackArtist); track.SetChanTrackTitle(trackTitle); track.SetChanTrackGenre(trackGenre); track.SetChanTrackURL(trackUrl); channel.ChannelTrack = new ChannelTrack(track); IsModified = false; }, () => channel != null && IsTracker && IsModified); }
private string BroadcastChannel( int? yellowPageId, string sourceUri, string contentReader, JObject info, JObject track, string sourceStream=null) { IYellowPageClient yp = null; if (yellowPageId.HasValue) { yp = PeerCast.YellowPages.FirstOrDefault(y => GetObjectId(y)==yellowPageId.Value); if (yp==null) throw new RPCError(RPCErrorCode.InvalidParams, "Yellow page not found"); } if (sourceUri==null) throw new RPCError(RPCErrorCode.InvalidParams, "source uri required"); Uri source; try { source = new Uri(sourceUri); } catch (UriFormatException) { throw new RPCError(RPCErrorCode.InvalidParams, "Invalid Uri"); } var content_reader = PeerCast.ContentReaderFactories.FirstOrDefault(reader => reader.Name==contentReader); if (content_reader==null) throw new RPCError(RPCErrorCode.InvalidParams, "Content reader not found"); var source_stream = PeerCast.SourceStreamFactories .Where(sstream => (sstream.Type & SourceStreamType.Broadcast)!=0) .FirstOrDefault(sstream => sstream.Name==sourceStream); if (source_stream==null) { source_stream = PeerCast.SourceStreamFactories .Where(sstream => (sstream.Type & SourceStreamType.Broadcast)!=0) .FirstOrDefault(sstream => sstream.Scheme==source.Scheme); } if (source_stream==null) throw new RPCError(RPCErrorCode.InvalidParams, "Source stream not found"); var new_info = new AtomCollection(); if (info!=null) { info.TryGetThen("name", v => new_info.SetChanInfoName(v)); info.TryGetThen("url", v => new_info.SetChanInfoURL(v)); info.TryGetThen("genre", v => new_info.SetChanInfoGenre(v)); info.TryGetThen("desc", v => new_info.SetChanInfoDesc(v)); info.TryGetThen("comment", v => new_info.SetChanInfoComment(v)); } var channel_info = new ChannelInfo(new_info); if (channel_info.Name==null || channel_info.Name=="") { throw new RPCError(RPCErrorCode.InvalidParams, "Channel name must not be empty"); } var channel_id = PeerCastStation.Core.BroadcastChannel.CreateChannelID( PeerCast.BroadcastID, channel_info.Name, channel_info.Genre ?? "", source.ToString()); var channel = PeerCast.BroadcastChannel(yp, channel_id, channel_info, source, source_stream, content_reader); if (track!=null) { var new_track = new AtomCollection(channel.ChannelTrack.Extra); track.TryGetThen("name", v => new_track.SetChanTrackTitle(v)); track.TryGetThen("genre", v => new_track.SetChanTrackGenre(v)); track.TryGetThen("album", v => new_track.SetChanTrackAlbum(v)); track.TryGetThen("creator", v => new_track.SetChanTrackCreator(v)); track.TryGetThen("url", v => new_track.SetChanTrackURL(v)); channel.ChannelTrack = new ChannelTrack(new_track); } return channel.ChannelID.ToString("N").ToUpper(); }
private void SetChannelInfo(string channelId, JObject info, JObject track) { var channel = GetChannel(channelId); if (channel!=null && channel.IsBroadcasting) { if (info!=null) { var new_info = new AtomCollection(channel.ChannelInfo.Extra); if (info["name"]!=null) new_info.SetChanInfoName((string)info["name"]); if (info["url"]!=null) new_info.SetChanInfoURL((string)info["url"]); if (info["genre"]!=null) new_info.SetChanInfoGenre((string)info["genre"]); if (info["desc"]!=null) new_info.SetChanInfoDesc((string)info["desc"]); if (info["comment"]!=null) new_info.SetChanInfoComment((string)info["comment"]); channel.ChannelInfo = new ChannelInfo(new_info); } if (track!=null) { var new_track = new AtomCollection(channel.ChannelTrack.Extra); if (track["name"]!=null) new_track.SetChanTrackTitle((string)track["name"]); if (track["genre"]!=null) new_track.SetChanTrackGenre((string)track["genre"]); if (track["album"]!=null) new_track.SetChanTrackAlbum((string)track["album"]); if (track["creator"]!=null) new_track.SetChanTrackCreator((string)track["creator"]); if (track["url"]!=null) new_track.SetChanTrackURL((string)track["url"]); channel.ChannelTrack = new ChannelTrack(new_track); } } }
private ChannelTrack CreateChannelTrack(BroadcastViewModel viewModel) { var collection = new AtomCollection(); collection.SetChanTrackTitle(viewModel.TrackTitle); collection.SetChanTrackGenre(viewModel.TrackGenre); collection.SetChanTrackAlbum(viewModel.TrackAlbum); collection.SetChanTrackCreator(viewModel.TrackArtist); collection.SetChanTrackURL(viewModel.TrackUrl); return new ChannelTrack(collection); }
private void chanInfoUpdateButton_Click(object sender, EventArgs e) { var item = channelList.SelectedItem as ChannelListItem; if (item!=null) { var channel = item.Channel; if (!channel.IsBroadcasting) return; var info = new AtomCollection(channel.ChannelInfo.Extra); if (info!=null) { info.SetChanInfoComment(chanInfoComment.Text); info.SetChanInfoGenre(chanInfoGenre.Text); info.SetChanInfoDesc(chanInfoDesc.Text); info.SetChanInfoURL(chanInfoContactURL.Text); info.SetChanInfoComment(chanInfoComment.Text); channel.ChannelInfo = new ChannelInfo(info); } var track = new AtomCollection(channel.ChannelTrack.Extra); if (track!=null) { track.SetChanTrackAlbum(chanTrackAlbum.Text); track.SetChanTrackCreator(chanTrackArtist.Text); track.SetChanTrackTitle(chanTrackTitle.Text); track.SetChanTrackGenre(chanTrackGenre.Text); track.SetChanTrackURL(chanTrackContactURL.Text); channel.ChannelTrack = new ChannelTrack(track); } } }
private string BroadcastChannel(int? yellowPageId, string sourceUri, string contentReader, JObject info, JObject track) { IYellowPageClient yp = null; if (yellowPageId.HasValue) { yp = PeerCast.YellowPages.FirstOrDefault(y => y.GetHashCode()==yellowPageId.Value); if (yp==null) throw new RPCError(RPCErrorCode.InvalidParams, "Yellow page not found"); } if (sourceUri==null) throw new RPCError(RPCErrorCode.InvalidParams, "source uri required"); Uri source; try { source = new Uri(sourceUri); } catch (UriFormatException) { throw new RPCError(RPCErrorCode.InvalidParams, "Invalid Uri"); } var content_reader = PeerCast.ContentReaderFactories.FirstOrDefault(reader => reader.Name==contentReader); if (content_reader==null) throw new RPCError(RPCErrorCode.InvalidParams, "Content reader not found"); var new_info = new AtomCollection(); if (info!=null) { if (info["name"]!=null) new_info.SetChanInfoName( (string)info["name"]); if (info["url"]!=null) new_info.SetChanInfoURL( (string)info["url"]); if (info["genre"]!=null) new_info.SetChanInfoGenre( (string)info["genre"]); if (info["desc"]!=null) new_info.SetChanInfoDesc( (string)info["desc"]); if (info["comment"]!=null) new_info.SetChanInfoComment((string)info["comment"]); } var channel_info = new ChannelInfo(new_info); if (channel_info.Name==null || channel_info.Name=="") { throw new RPCError(RPCErrorCode.InvalidParams, "Channel name must not be empty"); } var channel_id = Utils.CreateChannelID( PeerCast.BroadcastID, channel_info.Name, channel_info.Genre ?? "", source.ToString()); var channel = PeerCast.BroadcastChannel(yp, channel_id, channel_info, source, content_reader); if (track!=null) { var new_track = new AtomCollection(channel.ChannelTrack.Extra); if (track["name"]!=null) new_track.SetChanTrackTitle((string)track["name"]); if (track["genre"]!=null) new_track.SetChanTrackGenre((string)track["genre"]); if (track["album"]!=null) new_track.SetChanTrackAlbum((string)track["album"]); if (track["creator"]!=null) new_track.SetChanTrackCreator((string)track["creator"]); if (track["url"]!=null) new_track.SetChanTrackURL((string)track["url"]); channel.ChannelTrack = new ChannelTrack(new_track); } return channel.ChannelID.ToString("N").ToUpper(); }
private string BroadcastChannel(int?yellowPageId, string sourceUri, string contentReader, JObject info, JObject track) { IYellowPageClient yp = null; if (yellowPageId.HasValue) { yp = PeerCast.YellowPages.FirstOrDefault(y => y.GetHashCode() == yellowPageId.Value); if (yp == null) { throw new RPCError(RPCErrorCode.InvalidParams, "Yellow page not found"); } } if (sourceUri == null) { throw new RPCError(RPCErrorCode.InvalidParams, "source uri required"); } Uri source; try { source = new Uri(sourceUri); } catch (UriFormatException) { throw new RPCError(RPCErrorCode.InvalidParams, "Invalid Uri"); } var content_reader = PeerCast.ContentReaderFactories.FirstOrDefault(reader => reader.Name == contentReader); if (content_reader == null) { throw new RPCError(RPCErrorCode.InvalidParams, "Content reader not found"); } var new_info = new AtomCollection(); if (info != null) { if (info["name"] != null) { new_info.SetChanInfoName((string)info["name"]); } if (info["url"] != null) { new_info.SetChanInfoURL((string)info["url"]); } if (info["genre"] != null) { new_info.SetChanInfoGenre((string)info["genre"]); } if (info["desc"] != null) { new_info.SetChanInfoDesc((string)info["desc"]); } if (info["comment"] != null) { new_info.SetChanInfoComment((string)info["comment"]); } } var channel_info = new ChannelInfo(new_info); if (channel_info.Name == null || channel_info.Name == "") { throw new RPCError(RPCErrorCode.InvalidParams, "Channel name must not be empty"); } var channel_id = Utils.CreateChannelID( PeerCast.BroadcastID, channel_info.Name, channel_info.Genre ?? "", source.ToString()); var channel = PeerCast.BroadcastChannel(yp, channel_id, channel_info, source, content_reader); if (track != null) { var new_track = new AtomCollection(channel.ChannelTrack.Extra); if (track["name"] != null) { new_track.SetChanTrackTitle((string)track["name"]); } if (track["genre"] != null) { new_track.SetChanTrackGenre((string)track["genre"]); } if (track["album"] != null) { new_track.SetChanTrackAlbum((string)track["album"]); } if (track["creator"] != null) { new_track.SetChanTrackCreator((string)track["creator"]); } if (track["url"] != null) { new_track.SetChanTrackURL((string)track["url"]); } channel.ChannelTrack = new ChannelTrack(new_track); } return(channel.ChannelID.ToString("N").ToUpper()); }