private void RadioSetupForm_Load(object sender, EventArgs e) { LoadSettings(); string gentle = String.Format(@"{0}\gentle.config", Config.GetFolder(Config.Dir.Config)); NameValueCollection appSettings = ConfigurationManager.AppSettings; appSettings.Set("GentleConfigFile", gentle); cbTurnOnRadio.Checked = _autoTurnOnRadio; cbShowAllChannelsGroup.Checked = _showAllChannelsGroup; cbRememberLastGroup.Checked = _rememberLastGroup; comboBoxGroups.Items.Clear(); comboBoxGroups.Items.Add("(none)"); int selectedIdx = 0; IList <RadioChannelGroup> groups = RadioChannelGroup.ListAll(); foreach (RadioChannelGroup group in groups) { int idx = comboBoxGroups.Items.Add(group.GroupName); if (group.GroupName == _rootGroup) { selectedIdx = idx; } } comboBoxGroups.SelectedIndex = selectedIdx; }
private static void LoadChannelGroups() { if (!TVHome.Connected) { return; } Settings xmlreader = new MPSettings(); string currentchannelName = xmlreader.GetValueAsString("myradio", "channel", String.Empty); TvBusinessLayer layer = new TvBusinessLayer(); IList <Channel> channels = layer.GetChannelsByName(currentchannelName); if (channels != null && channels.Count > 0) { _currentChannel = channels[0]; } if (AllRadioGroups.Count == 0) { IList <RadioChannelGroup> allGroups = RadioChannelGroup.ListAll(); foreach (RadioChannelGroup group in allGroups) { if (hideAllChannelsGroup && group.GroupName.Equals(TvConstants.RadioGroupNames.AllChannels) && allGroups.Count > 1) { continue; } AllRadioGroups.Add(group); } } }
public override async Task <AsyncResult <IList <IChannel> > > GetChannelsAsync(IChannelGroup group) { await _initComplete.Task; List <IChannel> channels; if (group.ChannelGroupId < 0) { var radioGroup = RadioChannelGroup.Retrieve(-group.ChannelGroupId); var radioChannels = radioGroup.ReferringRadioGroupMap().OrderBy(rgm => rgm.SortOrder).Select(rgm => rgm.ReferencedChannel()); channels = radioChannels .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .Where(c => c != null) .ToList(); } else { channels = _tvBusiness.GetChannelsInGroup(TvDatabase.ChannelGroup.Retrieve(group.ChannelGroupId)) .Where(c => c != null) // Bug? SortOrder contains logical channel number, not the group sort order? // .OrderBy(c => c.SortOrder) .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .ToList(); } return(new AsyncResult <IList <IChannel> >(true, channels)); }
public List <WebChannel> GetChannelsInRadioGroup(int idGroup) { List <WebChannel> channels = new List <WebChannel>(); if (!ConnectToDatabase()) { return(channels); } RadioChannelGroup group = null; try { group = RadioChannelGroup.Retrieve(idGroup); } catch (Exception) { } if (group == null) { return(channels); } IList <RadioGroupMap> maps = group.ReferringRadioGroupMap(); foreach (RadioGroupMap map in maps) { channels.Add(new WebChannel(map.ReferencedChannel())); } return(channels); }
public bool Connect(string hostname) { try { string connStr; string provider; if (!GetDatabaseConnectionString(out connStr, out provider)) { return(false); } RemoteControl.HostName = hostname; Gentle.Framework.ProviderFactory.SetDefaultProviderConnectionString(connStr); me = new User(); me.IsAdmin = true; groups = ChannelGroup.ListAll(); radioGroups = RadioChannelGroup.ListAll(); channels = Channel.ListAll(); mappings = GroupMap.ListAll(); cards = Card.ListAll(); } catch (Exception ex) { lastException = ex; RemoteControl.Clear(); return(false); } return(true); }
private void RefreshTabs() { // bugfix for tab removal, RemoveAt fails sometimes tabControl1.TabPages.Clear(); tabControl1.TabPages.Add(tabPage1); IList <RadioChannelGroup> groups = RadioChannelGroup.ListAll(); foreach (RadioChannelGroup group in groups) { TabPage page = new TabPage(group.GroupName); page.SuspendLayout(); ChannelsInRadioGroupControl channelsInRadioGroupControl = new ChannelsInRadioGroupControl(); channelsInRadioGroupControl.Location = new System.Drawing.Point(9, 9); channelsInRadioGroupControl.Anchor = ((AnchorStyles.Top | AnchorStyles.Bottom) | AnchorStyles.Left) | AnchorStyles.Right; page.Controls.Add(channelsInRadioGroupControl); page.Tag = group; page.Location = new System.Drawing.Point(4, 22); page.Padding = new Padding(3); page.Size = new System.Drawing.Size(457, 374); page.UseVisualStyleBackColor = true; page.PerformLayout(); page.ResumeLayout(false); tabControl1.TabPages.Add(page); } }
public List <WebMiniEPG> GetRadioMiniEPGForGroup(int idGroup) { List <WebMiniEPG> ret = new List <WebMiniEPG>(); if (!ConnectToDatabase()) { return(ret); } RadioChannelGroup group = null; try { group = RadioChannelGroup.Retrieve(idGroup); } catch (Exception) { } if (group == null) { return(ret); } IList <RadioGroupMap> maps = group.ReferringRadioGroupMap(); foreach (RadioGroupMap map in maps) { ret.Add(new WebMiniEPG(map.ReferencedChannel())); } return(ret); }
public void LoadGroups() { // load all distinct groups try { GroupComboBox.Items.Clear(); GroupComboBox.Items.Add(new CBChannelGroup("", -1)); GroupComboBox.Tag = ""; if (IsTvMapping) { IList <ChannelGroup> channelGroups = ChannelGroup.ListAll(); foreach (ChannelGroup cg in channelGroups) { GroupComboBox.Items.Add(new CBChannelGroup(cg.GroupName, cg.IdGroup)); } } else { IList <RadioChannelGroup> channelGroups = RadioChannelGroup.ListAll(); foreach (RadioChannelGroup cg in channelGroups) { GroupComboBox.Items.Add(new CBChannelGroup(cg.GroupName, cg.IdGroup)); } } } catch (Exception e) { Log.Error("Failed to load groups {0}", e.Message); } }
public WebCount GetRadioGroupCount() { return(new WebCount() { Count = RadioChannelGroup.ListAll().Count }); }
public static RadioChannelGroup ToRadioChannelGroup(this WebChannelGroup group) { if (group == null) { return(null); } return(RadioChannelGroup.Retrieve(group.Id)); }
private void ReOrderGroups() { for (int i = 1; i < tabControl1.TabPages.Count; i++) { RadioChannelGroup group = (RadioChannelGroup)tabControl1.TabPages[i].Tag; group.SortOrder = i - 1; group.Persist(); } }
private void tabControl1_MouseClick(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Right) { return; } int targetIndex = -1; System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y); for (int i = 0; i < tabControl1.TabPages.Count; i++) { if (tabControl1.GetTabRect(i).Contains(pt)) { targetIndex = i; break; } } //first tab isn't a group tab if (targetIndex < 1) { return; } RadioChannelGroup group = tabControl1.TabPages[targetIndex].Tag as RadioChannelGroup; if (group == null) { return; } bool isFixedGroupName = ( group.GroupName == TvConstants.TvGroupNames.AllChannels || group.GroupName == TvConstants.TvGroupNames.Analog || group.GroupName == TvConstants.TvGroupNames.DVBC || group.GroupName == TvConstants.TvGroupNames.DVBS || group.GroupName == TvConstants.TvGroupNames.DVBT ); bool isGlobalChannelsGroup = ( group.GroupName == TvConstants.TvGroupNames.AllChannels ); renameGroupToolStripMenuItem.Tag = tabControl1.TabPages[targetIndex]; deleteGroupToolStripMenuItem.Tag = renameGroupToolStripMenuItem.Tag; renameGroupToolStripMenuItem.Enabled = !isFixedGroupName; deleteGroupToolStripMenuItem.Enabled = !isGlobalChannelsGroup; pt = tabControl1.PointToScreen(pt); groupTabContextMenuStrip.Show(pt); }
private void OnAddToFavoritesMenuItem_Click(object sender, EventArgs e) { RadioChannelGroup group; ToolStripMenuItem menuItem = (ToolStripMenuItem)sender; if (menuItem.Tag == null) { GroupNameForm dlg = new GroupNameForm(); dlg.IsRadio = true; if (dlg.ShowDialog(this) != DialogResult.OK) { return; } group = new RadioChannelGroup(dlg.GroupName, 9999); group.Persist(); this.RefreshContextMenu(); this.RefreshTabs(); } else { group = (RadioChannelGroup)menuItem.Tag; } ListView.SelectedIndexCollection indexes = mpListView1.SelectedIndices; if (indexes.Count == 0) { return; } TvBusinessLayer layer = new TvBusinessLayer(); for (int i = 0; i < indexes.Count; ++i) { ListViewItem item = mpListView1.Items[indexes[i]]; Channel channel = (Channel)item.Tag; layer.AddChannelToRadioGroup(channel, group); IList <string> groups = channel.GroupNames; List <string> groupNames = new List <string>(); foreach (string groupName in groups) { if (groupName != TvConstants.TvGroupNames.AllChannels && groupName != TvConstants.RadioGroupNames.AllChannels) { //Don't add "All Channels" groupNames.Add(groupName); } } item.SubItems[2].Text = String.Join(", ", groupNames.ToArray()); } mpListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }
private void OnAddToFavoritesMenuItem_Click(object sender, EventArgs e) { RadioChannelGroup group; ToolStripMenuItem menuItem = (ToolStripMenuItem)sender; if (menuItem.Tag == null) { GroupNameForm dlg = new GroupNameForm(); dlg.IsRadio = true; if (dlg.ShowDialog(this) != DialogResult.OK) { return; } group = new RadioChannelGroup(dlg.GroupName, 9999); group.Persist(); this.RefreshContextMenu(); this.RefreshTabs(); } else { group = (RadioChannelGroup)menuItem.Tag; } ListView.SelectedIndexCollection indexes = mpListView1.SelectedIndices; if (indexes.Count == 0) { return; } TvBusinessLayer layer = new TvBusinessLayer(); for (int i = 0; i < indexes.Count; ++i) { ListViewItem item = mpListView1.Items[indexes[i]]; Channel channel = (Channel)item.Tag; layer.AddChannelToRadioGroup(channel, group); string groupString = item.SubItems[1].Text; if (groupString == string.Empty) { groupString = group.GroupName; } else { groupString += ", " + group.GroupName; } item.SubItems[1].Text = groupString; } mpListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }
public override bool GetChannelGroups(out IList <IChannelGroup> groups) { groups = TvDatabase.ChannelGroup.ListAll() .OrderBy(tvGroup => tvGroup.SortOrder) .Select(tvGroup => tvGroup.ToChannelGroup()) .Union( RadioChannelGroup.ListAll() .OrderBy(radioGroup => radioGroup.SortOrder) .Select(radioGroup => radioGroup.ToChannelGroup()) ) .ToList(); return(true); }
public override async Task <AsyncResult <IList <IChannelGroup> > > GetChannelGroupsAsync() { await _initComplete.Task; var groups = TvDatabase.ChannelGroup.ListAll() .OrderBy(tvGroup => tvGroup.SortOrder) .Select(tvGroup => tvGroup.ToChannelGroup()) .Union( RadioChannelGroup.ListAll() .OrderBy(radioGroup => radioGroup.SortOrder) .Select(radioGroup => radioGroup.ToChannelGroup()) ) .ToList(); return(new AsyncResult <IList <IChannelGroup> >(true, groups)); }
public List <WebChannelGroup> GetRadioChannelGroups() { List <WebChannelGroup> ret = new List <WebChannelGroup>(); if (!ConnectToDatabase()) { return(ret); } IList <RadioChannelGroup> groups = RadioChannelGroup.ListAll(); foreach (RadioChannelGroup group in groups) { ret.Add(new WebChannelGroup(group.IdGroup, group.GroupName)); } return(ret); }
private void UpdateMenuAndTabs() { addToFavoritesToolStripMenuItem.DropDownItems.Clear(); IList <RadioChannelGroup> groups = RadioChannelGroup.ListAll(); foreach (RadioChannelGroup group in groups) { ToolStripMenuItem item = new ToolStripMenuItem(group.GroupName); item.Tag = group; item.Click += addToFavoritesToolStripMenuItem_Click; addToFavoritesToolStripMenuItem.DropDownItems.Add(item); } }
private void renameGroupToolStripMenuItem_Click(object sender, EventArgs e) { ToolStripDropDownItem menuItem = sender as ToolStripDropDownItem; if (menuItem == null) { return; } TabPage tab = menuItem.Tag as TabPage; if (tab == null) { return; } RadioChannelGroup group = tab.Tag as RadioChannelGroup; if (group == null) { return; } GroupNameForm dlg = new GroupNameForm(group.GroupName); dlg.ShowDialog(this); if (dlg.GroupName.Length == 0) { return; } group.GroupName = dlg.GroupName; group.Persist(); tab.Text = dlg.GroupName; if (group.ReferringRadioGroupMap().Count > 0 && tabControl1.SelectedIndex == 0) { this.RefreshContextMenu(); this.RefreshAllChannels(); } else { this.RefreshContextMenu(); } }
private void deleteGroupToolStripMenuItem_Click(object sender, EventArgs e) { ToolStripDropDownItem menuItem = sender as ToolStripDropDownItem; if (menuItem == null) { return; } TabPage tab = menuItem.Tag as TabPage; if (tab == null) { return; } RadioChannelGroup group = tab.Tag as RadioChannelGroup; if (group == null) { return; } DialogResult result = MessageBox.Show(string.Format("Are you sure you want to delete the group '{0}'?", group.GroupName), "", MessageBoxButtons.YesNo); if (result == DialogResult.No) { return; } bool groupIsEmpty = (group.ReferringRadioGroupMap().Count <= 0); group.Delete(); tabControl1.TabPages.Remove(tab); if (!groupIsEmpty && tabControl1.SelectedIndex == 0) { this.RefreshContextMenu(); this.RefreshAllChannels(); } else { this.RefreshContextMenu(); } }
private void mpButtonAddGroup_Click(object sender, EventArgs e) { GroupNameForm dlg = new GroupNameForm(); dlg.IsRadio = true; if (dlg.ShowDialog(this) != DialogResult.OK) { return; } RadioChannelGroup group = new RadioChannelGroup(dlg.GroupName, 9999); group.Persist(); this.RefreshContextMenu(); this.RefreshTabs(); }
public static WebChannelGroup ToWebChannelGroup(this RadioChannelGroup group) { if (group == null) { Log.Warn("Tried to convert a null ChannelGroup to WebChannelGroup"); return(null); } return(new WebChannelGroup { GroupName = group.GroupName, Id = group.IdGroup, IsChanged = group.IsChanged, SortOrder = group.SortOrder, IsRadio = true, IsTv = false }); }
private void addToFavoritesToolStripMenuItem_Click(object sender, EventArgs e) { RadioChannelGroup group; ToolStripMenuItem menuItem = (ToolStripMenuItem)sender; if (menuItem.Tag == null) { GroupNameForm dlg = new GroupNameForm(); dlg.IsRadio = true; if (dlg.ShowDialog(this) != DialogResult.OK) { return; } group = new RadioChannelGroup(dlg.GroupName, 9999); group.Persist(); UpdateMenuAndTabs(); } else { group = (RadioChannelGroup)menuItem.Tag; } ListView.SelectedIndexCollection indexes = listView1.SelectedIndices; if (indexes.Count == 0) { return; } TvBusinessLayer layer = new TvBusinessLayer(); for (int i = 0; i < indexes.Count; ++i) { ListViewItem item = listView1.Items[indexes[i]]; RadioGroupMap map = (RadioGroupMap)item.Tag; Channel channel = map.ReferencedChannel(); layer.AddChannelToRadioGroup(channel, group.GroupName); } }
private void RefreshContextMenu() { addToFavoritesToolStripMenuItem.DropDownItems.Clear(); IList <RadioChannelGroup> groups = RadioChannelGroup.ListAll(); foreach (RadioChannelGroup group in groups) { ToolStripMenuItem item = new ToolStripMenuItem(group.GroupName); item.Tag = group; item.Click += OnAddToFavoritesMenuItem_Click; addToFavoritesToolStripMenuItem.DropDownItems.Add(item); } ToolStripMenuItem itemNew = new ToolStripMenuItem("New..."); itemNew.Click += OnAddToFavoritesMenuItem_Click; addToFavoritesToolStripMenuItem.DropDownItems.Add(itemNew); }
private void GetGroupNames() { if (_isRadio) { IList <RadioChannelGroup> groups = RadioChannelGroup.ListAll(); _groupNames = new List <string>(); foreach (RadioChannelGroup group in groups) { _groupNames.Add(group.GroupName); } } else { IList <ChannelGroup> groups = ChannelGroup.ListAll(); _groupNames = new List <string>(); foreach (ChannelGroup group in groups) { _groupNames.Add(group.GroupName); } } }
public override bool GetChannels(IChannelGroup group, out IList <IChannel> channels) { if (group.ChannelGroupId < 0) { var radioGroup = RadioChannelGroup.Retrieve(-group.ChannelGroupId); var radioChannels = radioGroup.ReferringRadioGroupMap().OrderBy(rgm => rgm.SortOrder).Select(rgm => rgm.ReferencedChannel()); channels = radioChannels .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .ToList(); } else { channels = _tvBusiness.GetChannelsInGroup(TvDatabase.ChannelGroup.Retrieve(group.ChannelGroupId)) // Bug? SortOrder contains logical channel number, not the group sort order? // .OrderBy(c => c.SortOrder) .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .ToList(); } return(true); }
private void mpButtonDelGroup_Click(object sender, EventArgs e) { GroupSelectionForm dlgGrpSel = new GroupSelectionForm(); if (dlgGrpSel.ShowDialog(typeof(RadioChannelGroup), this) != DialogResult.OK) { return; } RadioChannelGroup group = dlgGrpSel.Group as RadioChannelGroup; if (group == null) { return; } DialogResult result = MessageBox.Show(string.Format("Are you sure you want to delete the group '{0}'?", group.GroupName), "", MessageBoxButtons.YesNo); if (result == DialogResult.No) { return; } bool isGroupEmpty = (group.ReferringRadioGroupMap().Count <= 0); group.Delete(); if (!isGroupEmpty) { this.RefreshAll(); } else { this.RefreshContextMenu(); this.RefreshTabs(); } }
private void mpButtonRenameGroup_Click(object sender, EventArgs e) { GroupSelectionForm dlgGrpSel = new GroupSelectionForm(); dlgGrpSel.Selection = GroupSelectionForm.SelectionType.ForRenaming; if (dlgGrpSel.ShowDialog(typeof(RadioChannelGroup), this) != DialogResult.OK) { return; } RadioChannelGroup group = dlgGrpSel.Group as RadioChannelGroup; if (group == null) { return; } GroupNameForm dlgGrpName = new GroupNameForm(group.GroupName); if (dlgGrpName.ShowDialog(this) != DialogResult.OK) { return; } group.GroupName = dlgGrpName.GroupName; group.Persist(); if (group.ReferringRadioGroupMap().Count > 0) { this.RefreshAll(); } else { this.RefreshContextMenu(); this.RefreshTabs(); } }
public void ReLoad() { //System.Diagnostics.Debugger.Launch(); try { SetupDatabaseConnection(); Log.Info("get channels from database"); SqlBuilder sb = new SqlBuilder(StatementType.Select, typeof(Channel)); sb.AddConstraint(Operator.Equals, "isTv", 1); sb.AddOrderByField(true, "sortOrder"); SqlStatement stmt = sb.GetStatement(true); channels = ObjectFactory.GetCollection(typeof(Channel), stmt.Execute()); Log.Info("found:{0} tv channels", channels.Count); TvNotifyManager.OnNotifiesChanged(); m_groups.Clear(); TvBusinessLayer layer = new TvBusinessLayer(); RadioChannelGroup allRadioChannelsGroup = layer.GetRadioChannelGroupByName(TvConstants.RadioGroupNames.AllChannels); IList <Channel> radioChannels = layer.GetAllRadioChannels(); if (radioChannels != null) { if (radioChannels.Count > allRadioChannelsGroup.ReferringRadioGroupMap().Count) { foreach (Channel radioChannel in radioChannels) { layer.AddChannelToRadioGroup(radioChannel, allRadioChannelsGroup); } } } Log.Info("Done."); Log.Info("get all groups from database"); sb = new SqlBuilder(StatementType.Select, typeof(ChannelGroup)); sb.AddOrderByField(true, "groupName"); stmt = sb.GetStatement(true); IList <ChannelGroup> groups = ObjectFactory.GetCollection <ChannelGroup>(stmt.Execute()); IList <GroupMap> allgroupMaps = GroupMap.ListAll(); bool hideAllChannelsGroup = false; using ( Settings xmlreader = new MPSettings()) { hideAllChannelsGroup = xmlreader.GetValueAsBool("mytv", "hideAllChannelsGroup", false); } foreach (ChannelGroup group in groups) { if (group.GroupName == TvConstants.TvGroupNames.AllChannels) { foreach (Channel channel in channels) { if (channel.IsTv == false) { continue; } bool groupContainsChannel = false; foreach (GroupMap map in allgroupMaps) { if (map.IdGroup != group.IdGroup) { continue; } if (map.IdChannel == channel.IdChannel) { groupContainsChannel = true; break; } } if (!groupContainsChannel) { layer.AddChannelToGroup(channel, TvConstants.TvGroupNames.AllChannels); } } break; } } groups = ChannelGroup.ListAll(); foreach (ChannelGroup group in groups) { //group.GroupMaps.ApplySort(new GroupMap.Comparer(), false); if (hideAllChannelsGroup && group.GroupName.Equals(TvConstants.TvGroupNames.AllChannels) && groups.Count > 1) { continue; } m_groups.Add(group); } Log.Info("loaded {0} tv groups", m_groups.Count); //TVHome.Connected = true; } catch (Exception ex) { Log.Error("TVHome: Error in Reload"); Log.Error(ex); //TVHome.Connected = false; } }
protected override void LoadDirectory(string strNewDirectory) { GUIListItem SelectedItem = facadeLayout.SelectedListItem; if (SelectedItem != null) { if (SelectedItem.IsFolder && SelectedItem.Label != "..") { directoryHistory.Set(SelectedItem.Label, currentFolder); } } currentFolder = strNewDirectory; GUIControl.ClearControl(GetID, facadeLayout.GetID); int totalItems = 0; if (currentFolder == null || currentFolder == "..") { IList <RadioChannelGroup> groups = RadioChannelGroup.ListAll(); foreach (RadioChannelGroup group in groups) { if (hideAllChannelsGroup && group.GroupName.Equals(TvConstants.RadioGroupNames.AllChannels) && groups.Count > 1) { continue; } if (group.GroupName == rootGroup) { continue; } GUIListItem item = new GUIListItem(); item.Label = group.GroupName; item.IsFolder = true; item.MusicTag = group; item.ThumbnailImage = String.Empty; Utils.SetDefaultIcons(item); string thumbnail = Utils.GetCoverArt(Thumbs.Radio, "folder_" + group.GroupName); if (!string.IsNullOrEmpty(thumbnail)) { item.IconImageBig = thumbnail; item.IconImage = thumbnail; item.ThumbnailImage = thumbnail; } facadeLayout.Add(item); totalItems++; } if (rootGroup != "(none)") { TvBusinessLayer layer = new TvBusinessLayer(); RadioChannelGroup root = layer.GetRadioChannelGroupByName(rootGroup); if (root != null) { IList <RadioGroupMap> maps = root.ReferringRadioGroupMap(); foreach (RadioGroupMap map in maps) { Channel channel = map.ReferencedChannel(); GUIListItem item = new GUIListItem(); if (_currentChannel != null) { if (channel.IdChannel == _currentChannel.IdChannel) { selectedItemIndex = totalItems - 1; } } item.Label = channel.DisplayName; item.IsFolder = false; item.MusicTag = channel; if (channel.IsWebstream()) { item.IconImageBig = "DefaultMyradioStreamBig.png"; item.IconImage = "DefaultMyradioStream.png"; } else { item.IconImageBig = "DefaultMyradioBig.png"; item.IconImage = "DefaultMyradio.png"; } string thumbnail = Utils.GetCoverArt(Thumbs.Radio, channel.DisplayName); if (!string.IsNullOrEmpty(thumbnail)) { item.IconImageBig = thumbnail; item.IconImage = thumbnail; item.ThumbnailImage = thumbnail; } facadeLayout.Add(item); totalItems++; } } } selectedGroup = null; } else { TvBusinessLayer layer = new TvBusinessLayer(); RadioChannelGroup group = layer.GetRadioChannelGroupByName(currentFolder); if (group == null) { return; } selectedGroup = group; lastFolder = currentFolder; GUIListItem item = new GUIListItem(); item.Label = ".."; item.IsFolder = true; item.MusicTag = null; item.ThumbnailImage = String.Empty; Utils.SetDefaultIcons(item); facadeLayout.Add(item); IList <RadioGroupMap> maps = group.ReferringRadioGroupMap(); foreach (RadioGroupMap map in maps) { Channel channel = map.ReferencedChannel(); if (channel != null) { item = new GUIListItem(); item.Label = channel.DisplayName; item.IsFolder = false; item.MusicTag = channel; item.AlbumInfoTag = map; if (channel.IsWebstream()) { item.IconImageBig = "DefaultMyradioStreamBig.png"; item.IconImage = "DefaultMyradioStream.png"; } else { item.IconImageBig = "DefaultMyradioBig.png"; item.IconImage = "DefaultMyradio.png"; } string thumbnail = Utils.GetCoverArt(Thumbs.Radio, channel.DisplayName); if (!string.IsNullOrEmpty(thumbnail)) { item.IconImageBig = thumbnail; item.IconImage = thumbnail; item.ThumbnailImage = thumbnail; } facadeLayout.Add(item); totalItems++; } } } SwitchLayout(); OnSort(); //set object count label GUIPropertyManager.SetProperty("#itemcount", Utils.GetObjectCountLabel(totalItems)); SelectCurrentItem(); SetLabels(); for (int i = 0; i < facadeLayout.Count; ++i) { GUIListItem item = facadeLayout[i]; if (item != null) { Channel channel = item.MusicTag as Channel; if ((channel != null) && (_currentChannel != null)) { if (channel.IdChannel == _currentChannel.IdChannel) { selectedItemIndex = i++; break; } } } //set selected item if (selectedItemIndex >= 0) { GUIControl.SelectItemControl(GetID, facadeLayout.GetID, selectedItemIndex); } } }
public bool ReadAllRadioChannelGroups(out IList<RadioChannelGroup> allgroups) { allgroups = new List<RadioChannelGroup>(); try { IList<WebChannelGroup> radioGroups = TvServer(_server_index).GetRadioGroups(); foreach (WebChannelGroup myradiochannelgroup in radioGroups) { RadioChannelGroup item = new RadioChannelGroup(); item.Id = myradiochannelgroup.Id; item.GroupName = myradiochannelgroup.GroupName; allgroups.Add(item); } return true; } catch (Exception ex) { Log.Error(ex.Message); } return false; }
public bool ReadAllRadioChannelGroups(out IList<IRadioChannelGroup> allRadioChannelGroups) { allRadioChannelGroups = new List<IRadioChannelGroup>(); try { string response = string.Empty; string command = PipeCommands.ReadAllRadioChannelGroups.ToString(); Log.Debug("command=" + command); response = PipeClient.Instance.RunSingleCommand(command); Log.Debug("response=" + response); string[] allRadioChannelGroupsString = response.Split('\n'); for (int i = 0; i < (allRadioChannelGroupsString.Length-1) / 2; i++) { RadioChannelGroup myRadiochannelgroup = new RadioChannelGroup(); myRadiochannelgroup.Id = int.Parse(allRadioChannelGroupsString[2*i]); myRadiochannelgroup.GroupName = allRadioChannelGroupsString[2*i + 1]; allRadioChannelGroups.Add(myRadiochannelgroup); } } catch (Exception exc) { Log.Debug("***Error ReadAllRadioChannelGroups: Exception=" + exc.Message); return false; } return true; }