コード例 #1
0
 public void ShowLog()
 {
     torrentList.Clear();
     foreach (string logline in Log.Instance().Lines)
     {
         GUIListItem item = new GUIListItem();
         item.Label = logline;
         torrentList.Add(item);
     }
 }
コード例 #2
0
        private void LoadAllChannels()
        {
            _allChannelsList.Clear();

            var channels = Proxies.SchedulerService.GetAllChannels(_currentChannelType, false).Result;

            foreach (Channel channel in channels)
            {
                if (!_channelIdsInList.Contains(channel.ChannelId))
                {
                    GUIListItem item = new GUIListItem();
                    item.Label = channel.DisplayName;
                    item.TVTag = channel;

                    string logo = Utility.GetLogoImage(channel);
                    if (!string.IsNullOrEmpty(logo))
                    {
                        item.IconImage = logo;
                    }
                    if (!channel.VisibleInGuide)
                    {
                        item.IsPlayed = true;
                    }
                    _allChannelsList.Add(item);
                }
            }
        }
コード例 #3
0
        private void LoadChannelsForGroup(ChannelGroup group)
        {
            _channelsInGroupList.Clear();
            _channelIdsInList.Clear();

            if (group != null)
            {
                var channels = Proxies.SchedulerService.GetChannelsInGroup(group.ChannelGroupId, false).Result;
                if (channels != null && channels.Count > 0)
                {
                    foreach (Channel channel in channels)
                    {
                        _channelIdsInList.Add(channel.ChannelId);
                        GUIListItem item = new GUIListItem();
                        item.Label = channel.DisplayName;
                        item.TVTag = channel;

                        string logo = Utility.GetLogoImage(channel);
                        if (!string.IsNullOrEmpty(logo))
                        {
                            item.IconImage = logo;
                        }
                        if (!channel.VisibleInGuide)
                        {
                            item.IsPlayed = true;
                        }
                        _channelsInGroupList.Add(item);
                    }
                }
            }
        }
コード例 #4
0
ファイル: Main.cs プロジェクト: nubuntu/mychitchat
        /// <summary>
        /// Updates the contacts facade.
        /// </summary>
        private void UpdateContactsFacade()
        {
            if (ctrlListControlContacts != null)
            {
                ctrlListControlContacts.Clear();
                foreach (Session currentSession in History.Instance.ChatSessions)
                {
                    currentSession.UpdateItemInfo();
                    currentSession.OnItemSelected -= new GUIListItem.ItemSelectedHandler(OnSessionItemSelected);
                    currentSession.OnItemSelected += new GUIListItem.ItemSelectedHandler(OnSessionItemSelected);

                    try {
                        if (StatusFilter.HasValue)
                        {
                            if (StatusFilter.Value == currentSession.IsActiveSession)
                            {
                                ctrlListControlContacts.Add(currentSession);
                            }
                        }
                        else
                        {
                            ctrlListControlContacts.Add(currentSession);
                        }
                    } catch (Exception e) {
                        Log.Error(e);
                    }
                }
                ctrlListControlContacts.DoUpdate();
            }
        }
コード例 #5
0
        private void LoadAllChannels()
        {
            _allChannelsList.Clear();

            Channel[] channels = SchedulerAgent.GetAllChannels(_currentChannelType, false);
            if (channels != null && channels.Length > 0)
            {
                foreach (Channel channel in channels)
                {
                    if (!_channelIdsInList.Contains(channel.ChannelId))
                    {
                        GUIListItem item = new GUIListItem();
                        item.Label = channel.DisplayName;
                        item.TVTag = channel;

                        string logo = Utility.GetLogoImage(channel, SchedulerAgent);
                        if (!string.IsNullOrEmpty(logo))
                        {
                            item.IconImage = logo;
                        }
                        if (!channel.VisibleInGuide)
                        {
                            item.IsPlayed = true;
                        }
                        _allChannelsList.Add(item);
                    }
                }
            }
        }
コード例 #6
0
        private void LoadChannelGroups(ChannelGroup groupToSelect)
        {
            _channelGroupsList.Clear();

            ChannelGroup[] groups = GetAllChannelGroups();
            if (groups != null && groups.Length > 0)
            {
                foreach (ChannelGroup group in groups)
                {
                    GUIListItem item = new GUIListItem();
                    item.Label = group.GroupName;
                    item.TVTag = group;

                    if (!group.VisibleInGuide)
                    {
                        item.IsPlayed = true;
                    }
                    if (group.ChannelGroupId == groupToSelect.ChannelGroupId)
                    {
                        item.IsRemote = true;
                    }
                    _channelGroupsList.Add(item);
                }
            }
        }
コード例 #7
0
        private void UpdateSimilarTrackWorker(string filename, MusicTag tag)
        {
            if (tag == null)
            {
                return;
            }

            lstSimilarTracks.Clear();

            List <LastFMSimilarTrack> tracks;

            try
            {
                Log.Debug("GUIMusicPlayingNow: Calling Last.FM to get similar Tracks");
                tracks = LastFMLibrary.GetSimilarTracks(tag.Title, tag.Artist);
            }
            catch (Exception ex)
            {
                Log.Error("Error getting similar tracks in now playing");
                Log.Error(ex);
                return;
            }

            Log.Debug("GUIMusicPlayingNow: Number of similar tracks returned from Last.FM: {0}", tracks.Count);

            var dbTracks = GetSimilarTracksInDatabase(tracks);

            for (var i = 0; i < 3; i++)
            {
                if (dbTracks.Count > 0)
                {
                    var trackNo = Randomizer.Next(0, dbTracks.Count);
                    var song    = dbTracks[trackNo];

                    var t    = song.ToMusicTag();
                    var item = new GUIListItem
                    {
                        AlbumInfoTag = song,
                        MusicTag     = tag,
                        IsFolder     = false,
                        Label        = song.Title,
                        Path         = song.FileName
                    };
                    item.AlbumInfoTag = song;
                    item.MusicTag     = t;

                    GUIMusicBaseWindow.SetTrackLabels(ref item, MusicSort.SortMethod.Album);
                    dbTracks.RemoveAt(trackNo); // remove song after adding to playlist to prevent the same sone being added twice

                    if (g_Player.currentFileName != filename)
                    {
                        return;                             // track has changed since request so ignore
                    }
                    lstSimilarTracks.Add(item);
                }
            }
            Log.Debug("GUIMusicPlayingNow: Tracks returned after matching Last.FM results with database tracks: {0}", lstSimilarTracks.Count);
        }
コード例 #8
0
        private void AddRangeToList(GUIListControl listControl, List <GUIListItem> listItems)
        {
            listControl.Clear();

            foreach (var item in listItems)
            {
                listControl.Add(item);
            }
        }
コード例 #9
0
 protected void UpDateProgramlist()
 {
     if (lcProgramList != null)
     {
         lcProgramList.Clear();
         GlobalServiceProvider.Instance.Get <IWishList>().InsertTVProgs(ref lcProgramList, _startTime, _stopTime);
         lcProgramList.Disabled = (lcProgramList.Count <= 0);
     }
 }
コード例 #10
0
        private void UpdateAlbumCoverList()
        {
            if (listView == null)
            {
                return;
            }

            listView.Clear();

            Console.WriteLine("Current cover art image: " + imgCoverArt.FileName);
            imgCoverArt.SetFileName("");
            imgCoverArt.SetFileName(_ThumbPath);
            Console.WriteLine("New cover art image: " + imgCoverArt.FileName);

            if (amazonWS.HasAlbums)
            {
                for (int i = 0; i < amazonWS.AlbumCount; i++)
                {
                    AlbumInfo   albuminfo = (AlbumInfo)amazonWS.AlbumInfoList[i];
                    GUIListItem item      = new GUIListItem(albuminfo.Album);
                    item.Label2       = albuminfo.Artist;
                    item.IconImageBig = albuminfo.Image;
                    item.IconImage    = albuminfo.Image;
                    listView.Add(item);
                }

                //listView.Focus = true;
                //btnCancel.Focus = false;

                listView.Focus  = true;
                btnCancel.Focus = false;
                btnSkip.Focus   = false;
            }

            else
            {
                listView.Focus = false;
                //btnCancel.Focus = true;
                //btnSkip.Focus = false;
                btnCancel.Focus = false;
                btnSkip.Focus   = true;
            }
        }
コード例 #11
0
        public override void Reset()
        {
            base.Reset();
            ConflictingEpisodes = false;
            GUIListControl list = (GUIListControl)GetControl((int)Controls.LIST);

            if (list != null)
            {
                list.Clear();
            }
        }
コード例 #12
0
 private void FillList()
 {
     listView.Clear();
     foreach (var plugin in PluginManager.IncompatiblePluginAssemblies)
     {
         listView.Add(CreateListItem(plugin));
     }
     foreach (var plugin in PluginManager.IncompatiblePlugins)
     {
         listView.Add(CreateListItem(plugin));
     }
 }
コード例 #13
0
        private void OnGroupChanged()
        {
            Stopwatch bClock = Stopwatch.StartNew();

            GUIWaitCursor.Show();
            TVHome.Navigator.SetCurrentGroup(spinGroup.Value);
            GUIPropertyManager.SetProperty("#TV.Guide.Group", spinGroup.GetLabel());
            lstChannels.Clear();
            FillChannelList();
            GUIWaitCursor.Hide();

            Log.Debug("OnGroupChanged {0} took {1} msec", spinGroup.Value, bClock.ElapsedMilliseconds);
        }
コード例 #14
0
        private void LoadSettings()
        {
            videosShareListcontrol.Clear();
            SettingsSharesHelper settingsSharesHelper = new SettingsSharesHelper();

            // Load share settings
            settingsSharesHelper.LoadSettings(_section);

            // ToggleButtons
            btnAddOpticalDrives.Selected     = settingsSharesHelper.AddOpticalDiskDrives;
            btnRemeberLastFolder.Selected    = settingsSharesHelper.RememberLastFolder;
            btnAutoSwitchRemovables.Selected = settingsSharesHelper.SwitchRemovableDrives;


            foreach (var item in settingsSharesHelper.ShareListControl)
            {
                item.OnItemSelected += OnItemSelected;
                videosShareListcontrol.Add(item);

                if (item.IsPlayed)
                {
                    _defaultShare = FolderInfo(item).Name;
                }
            }

            Sort();

            if (videosShareListcontrol.Count > 0)
            {
                videosShareListcontrol.SelectedListItemIndex = 0;
                _shareFolderListItem      = videosShareListcontrol.SelectedListItem;
                _folderDefaultLayoutIndex = SettingsSharesHelper.ProperDefaultFromLayout(FolderInfo(_shareFolderListItem).DefaultLayout);
            }

            using (Profile.Settings xmlreader = new MPSettings())
            {
                _globalVideoThumbsEnaled = xmlreader.GetValueAsBool("thumbnails", "videoondemand", true);
            }
        }
コード例 #15
0
        private void UpdateSimilarTracks(string filename)
        {
            if (!_lookupSimilarTracks)
            {
                return;
            }

            lstSimilarTracks.Clear();

            var worker = new BackgroundWorker();

            worker.DoWork += (obj, e) => UpdateSimilarTrackWorker(filename, CurrentTrackTag);
            worker.RunWorkerAsync();
        }
コード例 #16
0
        public override bool OnMessage(GUIMessage message)
        {
            //      needRefresh = true;
            switch (message.Message)
            {
            case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT:
            {
                lblHeading.Label = string.Empty;
                if (lblHeading2 != null)
                {
                    lblHeading2.Label = string.Empty;
                }

                base.OnMessage(message);
                return(true);
            }

            case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT:
            {
                base.OnMessage(message);

                listView.Clear();
                for (int i = 0; i < listItems.Count; i++)
                {
                    GUIListItem pItem = (GUIListItem)listItems[i];
                    listView.Add(pItem);
                }

                if (selectedItemIndex >= 0)
                {
                    GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECT, GetID, 0, listView.GetID,
                                                    selectedItemIndex, 0, null);
                    OnMessage(msg);
                }
                else if (listItems.Count > 0)
                {
                    GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECT, GetID, 0, listView.GetID,
                                                    0, 0, null);
                    OnMessage(msg);
                }
                selectedItemIndex = -1;
                selectedId        = -1;
                string wszText = String.Format("{0} {1}", listItems.Count, GUILocalizeStrings.Get(127));
            }
                return(true);
            }
            return(base.OnMessage(message));
        }
コード例 #17
0
        private void ReleaseResources()
        {
            if (listActorMovies != null)
            {
                listActorMovies.Clear();
            }

            if (imgCoverArt != null)
            {
                imgCoverArt.Dispose();
            }

            if (imgMovieCover != null)
            {
                imgMovieCover.Dispose();
            }
        }
コード例 #18
0
        private void LoadSettings()
        {
            using (Profile.Settings xmlreader = new Profile.MPSettings())
            {
                _noLargeThumbnails = xmlreader.GetValueAsBool("thumbnails", "picturenolargethumbondemand", true);

                lcFolders.Clear();
                _scanShare = 0;
                SettingsSharesHelper settingsSharesHelper = new SettingsSharesHelper();
                // Load share settings
                settingsSharesHelper.LoadSettings("pictures");

                foreach (GUIListItem item in settingsSharesHelper.ShareListControl)
                {
                    string driveLetter = FolderInfo(item).Folder.Substring(0, 3).ToUpperInvariant();

                    if (driveLetter.StartsWith("\\\\") || Util.Utils.getDriveType(driveLetter) == 3 ||
                        Util.Utils.getDriveType(driveLetter) == 4)
                    {
                        item.IsPlayed = false;

                        if (FolderInfo(item).ScanShare)
                        {
                            item.IsPlayed = true;
                            item.Label2   = GUILocalizeStrings.Get(193); // Scan
                            _scanShare++;
                        }
                        item.OnItemSelected += OnItemSelected;
                        item.Label           = FolderInfo(item).Folder;

                        item.Path = FolderInfo(item).Folder;
                        lcFolders.Add(item);
                    }
                }
                _defaultShare              = xmlreader.GetValueAsString("pictures", "default", "");
                _rememberLastFolder        = xmlreader.GetValueAsBool("pictures", "rememberlastfolder", false);
                _addOpticalDiskDrives      = xmlreader.GetValueAsBool("pictures", "AddOpticalDiskDrives", true);
                _autoSwitchRemovableDrives = xmlreader.GetValueAsBool("pictures", "SwitchRemovableDrives", true);
            }
        }
コード例 #19
0
        private void OnExtensions()
        {
            string extensions = string.Empty;

            using (Profile.Settings xmlreader = new MPSettings())
            {
                extensions = xmlreader.GetValueAsString(_section, "extensions", Util.Utils.VideoExtensionsDefault);
            }
            string[] vExtensions = (extensions).Split(',');

            if (extensionsListcontrol != null)
            {
                extensionsListcontrol.Clear();

                foreach (var vExtension in vExtensions)
                {
                    GUIListItem item = new GUIListItem();
                    item.Label = vExtension;
                    extensionsListcontrol.Add(item);
                }
            }
        }
コード例 #20
0
ファイル: ManualSchedule.cs プロジェクト: rob-opsi/ARGUS-TV
        private void Update(Schedule _schedule)
        {
            _upcomingEpsiodesList.Clear();
            if (_programTimeLabel != null && _programTitleFadeLabel != null)
            {
                if (_upcomingProgram != null)
                {
                    string strTime = String.Format("{0} {1} - {2}",
                                                   Utility.GetShortDayDateString(_upcomingProgram.StartTime),
                                                   _upcomingProgram.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat),
                                                   _upcomingProgram.StopTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat));

                    _programTimeLabel.Label      = strTime;
                    _programTitleFadeLabel.Label = _upcomingProgram.Title;
                }
                else
                {
                    _programTimeLabel.Label      = string.Empty;
                    _programTitleFadeLabel.Label = string.Empty;
                }
            }

            if (_schedule != null)
            {
                if (_schedule.ScheduleType == ScheduleType.Recording)
                {
                    var recordings = Proxies.ControlService.GetUpcomingRecordings(_schedule.ScheduleId, true).Result;
                    foreach (UpcomingRecording recording in recordings)
                    {
                        GUIListItem item  = new GUIListItem();
                        string      title = recording.Title;
                        item.Label = title;
                        string logoImagePath = Utility.GetLogoImage(recording.Program.Channel);
                        if (logoImagePath == null ||
                            !System.IO.File.Exists(logoImagePath))
                        {
                            item.Label    = String.Format("[{0}] {1}", recording.Program.Channel.DisplayName, title);
                            logoImagePath = "defaultVideoBig.png";
                        }

                        item.PinImage = Utility.GetIconImageFileName(ScheduleType.Recording, recording.Program.IsPartOfSeries,
                                                                     recording.Program.CancellationReason, recording);

                        item.TVTag          = recording;
                        item.ThumbnailImage = logoImagePath;
                        item.IconImageBig   = logoImagePath;
                        item.IconImage      = logoImagePath;
                        item.Label2         = String.Format("{0} {1} - {2}",
                                                            Utility.GetShortDayDateString(recording.StartTime),
                                                            recording.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat),
                                                            recording.StopTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat));

                        _upcomingEpsiodesList.Add(item);
                    }
                }
                else
                {
                    var _progs = Proxies.SchedulerService.GetUpcomingPrograms(_schedule, true).Result;
                    foreach (UpcomingProgram program in _progs)
                    {
                        GUIListItem item  = new GUIListItem();
                        string      title = program.Title;
                        item.Label = title;
                        //item.OnItemSelected += new global::MediaPortal.GUI.Library.GUIListItem.ItemSelectedHandler(item_OnItemSelected);
                        string logoImagePath = Utility.GetLogoImage(program.Channel);
                        if (logoImagePath == null ||
                            !System.IO.File.Exists(logoImagePath))
                        {
                            item.Label    = String.Format("[{0}] {1}", program.Channel.DisplayName, title);
                            logoImagePath = "defaultVideoBig.png";
                        }

                        if (_schedule.ScheduleType == ScheduleType.Alert)
                        {
                            item.PinImage = item.PinImage = Utility.GetIconImageFileName(ScheduleType.Alert, program.IsPartOfSeries,
                                                                                         program.CancellationReason, null);
                        }
                        item.TVTag          = program;
                        item.ThumbnailImage = logoImagePath;
                        item.IconImageBig   = logoImagePath;
                        item.IconImage      = logoImagePath;
                        item.Label2         = String.Format("{0} {1} - {2}",
                                                            Utility.GetShortDayDateString(program.StartTime),
                                                            program.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat),
                                                            program.StopTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat));

                        _upcomingEpsiodesList.Add(item);
                    }
                }
            }
            _upcomingEpisodesLabel.IsVisible = (_upcomingEpsiodesList != null && _upcomingEpsiodesList.Count > 0);
        }
コード例 #21
0
        private void LoadSettings()
        {
            using (Profile.Settings xmlreader = new Profile.MPSettings())
            {
                btnExtractthumbs.Selected      = xmlreader.GetValueAsBool("musicfiles", "extractthumbs", true);
                btnCreateartistthumbs.Selected = xmlreader.GetValueAsBool("musicfiles", "createartistthumbs", false);
                btnCreategenrethumbs.Selected  = xmlreader.GetValueAsBool("musicfiles", "creategenrethumbs", true);
                btnUseFolderThumbs.Selected    = xmlreader.GetValueAsBool("musicfiles", "useFolderThumbs", false);
                btnUseAllImages.Selected       = xmlreader.GetValueAsBool("musicfiles", "useAllImages",
                                                                          btnUseFolderThumbs.Selected);
                btnTreatFolderAsAlbum.Selected = xmlreader.GetValueAsBool("musicfiles", "treatFolderAsAlbum", false);

                if (btnTreatFolderAsAlbum.Selected)
                {
                    btnCreateMissingFolderThumbs.IsEnabled = true;
                }
                else
                {
                    btnCreateMissingFolderThumbs.IsEnabled = false;
                }

                btnCreateMissingFolderThumbs.Selected = xmlreader.GetValueAsBool("musicfiles", "createMissingFolderThumbs",
                                                                                 btnTreatFolderAsAlbum.Selected);
                btnMonitorShares.Selected         = xmlreader.GetValueAsBool("musicfiles", "monitorShares", false);
                btnUpdateSinceLastImport.Selected = xmlreader.GetValueAsBool("musicfiles", "updateSinceLastImport", true);
                _updateSinceLastImport            = String.Format("Only update files after {0}",
                                                                  xmlreader.GetValueAsString("musicfiles", "lastImport",
                                                                                             "1900-01-01 00:00:00"));
                btnStripartistprefixes.Selected = xmlreader.GetValueAsBool("musicfiles", "stripartistprefixes", false);
                _prefixes = xmlreader.GetValueAsString("musicfiles", "artistprefixes", "The, Les, Die");
                _dateAddedSelectedIndex = xmlreader.GetValueAsInt("musicfiles", "dateadded", 0);

                lcFolders.Clear();
                _scanShare = 0;
                SettingsSharesHelper settingsSharesHelper = new SettingsSharesHelper();
                // Load share settings
                settingsSharesHelper.LoadSettings("music");

                foreach (GUIListItem item in settingsSharesHelper.ShareListControl)
                {
                    string driveLetter = FolderInfo(item).Folder.Substring(0, 3).ToUpper();

                    if (driveLetter.StartsWith("\\\\") || Util.Utils.getDriveType(driveLetter) == 3 ||
                        Util.Utils.getDriveType(driveLetter) == 4)
                    {
                        item.IsPlayed = false;

                        if (FolderInfo(item).ScanShare)
                        {
                            item.IsPlayed = true;
                            item.Label2   = GUILocalizeStrings.Get(193);
                            _scanShare++;
                        }
                        item.OnItemSelected += OnItemSelected;
                        item.Label           = FolderInfo(item).Folder;

                        item.Path = FolderInfo(item).Folder;
                        lcFolders.Add(item);
                    }
                }
                _defaultShare              = xmlreader.GetValueAsString("music", "default", "");
                _rememberLastFolder        = xmlreader.GetValueAsBool("music", "rememberlastfolder", false);
                _addOpticalDiskDrives      = xmlreader.GetValueAsBool("music", "AddOpticalDiskDrives", true);
                _autoSwitchRemovableDrives = xmlreader.GetValueAsBool("music", "SwitchRemovableDrives", true);
            }
        }
コード例 #22
0
        private void InsertDefaultValues()
        {
            string nameBackup = null;

            if (RefreshRateData(lcRefreshRatesList.ListItems[_defaultHzIndex]).Name != null)
            {
                nameBackup = RefreshRateData(lcRefreshRatesList.ListItems[_defaultHzIndex]).Name;
            }

            lcRefreshRatesList.Clear();
            _defaultHz.Clear();
            Settings xmlreader = new MPSettings();

            //first time mp config is run, no refreshrate settings available, create the default ones.
            string[] p = new String[4];
            p[0] = "CINEMA";
            p[1] = "23.976"; // fps
            p[2] = "23";     //hz
            p[3] = "";       //action
            GUIListItem     item            = new GUIListItem();
            RefreshRateData refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);

            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "CINEMA24";
            p[1]                 = "24"; // fps
            p[2]                 = "24"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "PAL";
            p[1]                 = "25"; // fps
            p[2]                 = "50"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "PALHD";
            p[1]                 = "50"; // fps
            p[2]                 = "50"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "NTSC";
            p[1]                 = "29.97"; // fps
            p[2]                 = "59";    //hz
            p[3]                 = "";      //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "NTSCHD";
            p[1]                 = "59.94"; // fps
            p[2]                 = "59";    //hz
            p[3]                 = "";      //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "ATSC";
            p[1]                 = "30"; // fps
            p[2]                 = "60"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "ATSCHD";
            p[1]                 = "60"; // fps
            p[2]                 = "60"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            //tv section is not editable, it's static.
            string tvExtCmd = xmlreader.GetValueAsString("general", "refreshrateTV_ext", "");
            string tvName   = xmlreader.GetValueAsString("general", "refreshrateTV_name", "PAL");
            string tvFPS    = xmlreader.GetValueAsString("general", "tv_fps", "25");
            string tvHz     = xmlreader.GetValueAsString("general", "tv_hz", "50");

            String[] parameters = new String[4];
            parameters           = new String[4];
            parameters[0]        = "TV";
            parameters[1]        = tvFPS;    // fps
            parameters[2]        = tvHz;     //hz
            parameters[3]        = tvExtCmd; //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(parameters[0], parameters[1], parameters[2], parameters[3]);
            item.Label           = parameters[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(parameters[0]);

            // Select Default Hz value
            for (int i = 1; i < 100; i++)
            {
                string sDefaultHzName = RefreshRateData(lcRefreshRatesList.ListItems[i]).Name;
                string rate           = RefreshRateData(lcRefreshRatesList.ListItems[i]).Refreshrate;
                if (rate == _sDefaultHzValue && sDefaultHzName == _sDefaultHzNameValue || (sDefaultHzName == nameBackup))
                {
                    _defaultHzIndex = i;
                    SetProperties();
                    break;
                }
            }
        }
コード例 #23
0
        private void InsertDefaultValues()
        {
            lcRefreshRatesList.Clear();
            _defaultHz.Clear();
            Settings xmlreader = new MPSettings();

            //first time mp config is run, no refreshrate settings available, create the default ones.
            string[] p = new String[4];
            p[0] = "CINEMA";
            p[1] = "23.976;24"; // fps
            p[2] = "24";        //hz
            p[3] = "";          //action
            GUIListItem     item            = new GUIListItem();
            RefreshRateData refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);

            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "PAL";
            p[1]                 = "25"; // fps
            p[2]                 = "50"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "HDTV";
            p[1]                 = "50"; // fps
            p[2]                 = "50"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "NTSC";
            p[1]                 = "29.97;30"; // fps
            p[2]                 = "60";       //hz
            p[3]                 = "";         //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            //tv section is not editable, it's static.
            string tvExtCmd = xmlreader.GetValueAsString("general", "refreshrateTV_ext", "");
            string tvName   = xmlreader.GetValueAsString("general", "refreshrateTV_name", "PAL");
            string tvFPS    = xmlreader.GetValueAsString("general", "tv_fps", "25");
            string tvHz     = xmlreader.GetValueAsString("general", "tv_hz", "50");

            String[] parameters = new String[4];
            parameters           = new String[4];
            parameters[0]        = "TV";
            parameters[1]        = tvFPS;    // fps
            parameters[2]        = tvHz;     //hz
            parameters[3]        = tvExtCmd; //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(parameters[0], parameters[1], parameters[2], parameters[3]);
            item.Label           = parameters[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(parameters[0]);
        }
コード例 #24
0
 private void ClearWindow()
 {
     resultListControl.Clear();
     currentSearch = null;
     currentTvShow = null;
 }
コード例 #25
0
ファイル: GuideSearchBase.cs プロジェクト: twemperor/ARGUS-TV
        protected override void OnClicked(int controlId, GUIControl control, global::MediaPortal.GUI.Library.Action.ActionType actionType)
        {
            base.OnClicked(controlId, control, actionType);

            if (control == _searchButton)
            {
                _selectedTitleIndex   = 0;
                _selectedProgramIndex = 0;

                if (_rules.Count > 0)
                {
                    GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_YES_NO);
                    if (dlgYesNo != null)
                    {
                        dlgYesNo.SetHeading(Utility.GetLocalizedText(TextId.Attention));
                        dlgYesNo.SetLine(1, Utility.GetLocalizedText(TextId.ContinueWithPrevResults));
                        dlgYesNo.SetDefaultToYes(true);
                        dlgYesNo.DoModal(GetID);
                        if (!dlgYesNo.IsConfirmed)
                        {
                            _rules.Clear();
                            if (_viewsList != null && _viewsList.Count > 0)
                            {
                                _viewsList.Clear();
                            }
                        }
                    }
                }

                VirtualKeyboard keyboard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD);
                if (keyboard != null)
                {
                    keyboard.Reset();
                    keyboard.IsSearchKeyboard = true;
                    keyboard.Text             = String.Empty;
                    keyboard.DoModal(GetID);
                    if (keyboard.IsConfirmed)
                    {
                        if (keyboard.Text == string.Empty)
                        {
                            GUIDialogOK dlgOk = (GUIDialogOK)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_OK);
                            if (dlgOk != null)
                            {
                                dlgOk.SetHeading(Utility.GetLocalizedText(TextId.Information));
                                dlgOk.SetLine(1, Utility.GetLocalizedText(TextId.NoValidSearchText));
                                dlgOk.DoModal(GetID);
                            }
                        }
                        else
                        {
                            switch (_currentSearchMethod)
                            {
                            case SearchInMethod.Title:
                                _rules.Add(ScheduleRuleType.TitleContains, keyboard.Text);
                                break;

                            case SearchInMethod.Description:
                                _rules.Add(ScheduleRuleType.DescriptionContains, keyboard.Text);
                                break;

                            case SearchInMethod.ProgramInfo:
                                _rules.Add(ScheduleRuleType.ProgramInfoContains, keyboard.Text);
                                break;

                            case SearchInMethod.Actor:
                                _rules.Add(ScheduleRuleType.WithActor, keyboard.Text);
                                break;

                            case SearchInMethod.DirectedBy:
                                _rules.Add(ScheduleRuleType.DirectedBy, keyboard.Text);
                                break;
                            }
                            ShowSearchResults(string.Empty);
                        }
                    }
                }
            }
            else if (control == _searchMethodButton)
            {
                GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_MENU);
                if (dlg == null)
                {
                    return;
                }
                dlg.Reset();
                dlg.SetHeading(467);
                dlg.Add(Utility.GetLocalizedText(TextId.SearchOnTitle));
                dlg.Add(Utility.GetLocalizedText(TextId.SearchOnDescription));
                dlg.Add(Utility.GetLocalizedText(TextId.SearchOnProgramInfo));
                dlg.Add(Utility.GetLocalizedText(TextId.SearchOnActor));
                dlg.Add(Utility.GetLocalizedText(TextId.SearchOnDirectedBy));

                dlg.SelectedLabel = (int)_currentSearchMethod;
                // show dialog and wait for result
                dlg.DoModal(GetID);
                if (dlg.SelectedId == -1)
                {
                    return;
                }
                _currentSearchMethod = (SearchInMethod)(dlg.SelectedLabel);
                UpdateButtonStates();
            }
            else if (control == _selectChannelsButton)
            {
                List <ChannelGroup> groups         = new List <ChannelGroup>(PluginMain.Navigator.GetGroups(this._channelType));
                ChannelGroup        _selectedGroup = new ChannelGroup();

                if (groups.Count > 0)
                {
                    if (groups.Count > 1)
                    {
                        GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_MENU);
                        if (dlg == null)
                        {
                            return;
                        }

                        dlg.Reset();
                        dlg.SetHeading(Utility.GetLocalizedText(TextId.SelectGroup));
                        foreach (ChannelGroup group in groups)
                        {
                            dlg.Add(group.GroupName);
                        }

                        // show dialog and wait for result
                        dlg.DoModal(GetID);
                        if (dlg.SelectedId == -1)
                        {
                            return;
                        }
                        _selectedGroup = groups[dlg.SelectedId - 1];
                    }
                    else
                    {
                        _selectedGroup = groups[0];
                    }

                    List <Channel> channels = new List <Channel>();
                    if (_channelArguments.Count > 0)
                    {
                        List <Channel> channels2 = new List <Channel>(SchedulerAgent.GetChannelsInGroup(_selectedGroup.ChannelGroupId, true));
                        foreach (Channel channel in channels2)
                        {
                            if (!_channelArguments.Contains(channel.ChannelId))
                            {
                                channels.Add(channel);
                            }
                        }
                    }
                    else
                    {
                        channels = new List <Channel>(SchedulerAgent.GetChannelsInGroup(_selectedGroup.ChannelGroupId, true));
                    }

                    if (channels.Count > 0)
                    {
                        GUIDialogMenu dlg2 = (GUIDialogMenu)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_MENU);
                        if (dlg2 == null)
                        {
                            return;
                        }

                        dlg2.Reset();
                        dlg2.SetHeading(GetChannelArgumentsString(true));
                        foreach (Channel channel in channels)
                        {
                            dlg2.Add(channel.DisplayName);
                        }

                        // show dialog and wait for result
                        dlg2.DoModal(GetID);
                        if (dlg2.SelectedId == -1)
                        {
                            return;
                        }
                        _channelArguments.Add(channels[dlg2.SelectedId - 1].ChannelId);
                        UpdateButtonStates();
                    }
                    else
                    {
                        GUIDialogOK dlgOk = (GUIDialogOK)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_OK);
                        if (dlgOk != null)
                        {
                            dlgOk.SetHeading(Utility.GetLocalizedText(TextId.Information));
                            dlgOk.SetLine(1, Utility.GetLocalizedText(TextId.NoMoreChannelsToAdd));
                            dlgOk.DoModal(GetID);
                        }
                    }
                }
            }
            else if (control == _selectCategoriesButton)
            {
                List <string> categories  = new List <string>();
                string[]      _categories = new string[0];
                _categories = GuideAgent.GetAllCategories();

                foreach (string categorie in _categories)
                {
                    if (!_categorieArguments.Contains(categorie))
                    {
                        categories.Add(categorie);
                    }
                }

                if (categories.Count > 0)
                {
                    GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_MENU);
                    if (dlg == null)
                    {
                        return;
                    }

                    dlg.Reset();
                    dlg.SetHeading(GetCategorieArgumentString(true));
                    foreach (string categorie in categories)
                    {
                        dlg.Add(categorie);
                    }

                    // show dialog and wait for result
                    dlg.DoModal(GetID);
                    if (dlg.SelectedId == -1)
                    {
                        return;
                    }
                    _categorieArguments.Add(dlg.SelectedLabelText);
                    UpdateButtonStates();
                }
                else
                {
                    GUIDialogOK dlgOk = (GUIDialogOK)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_OK);
                    if (dlgOk != null)
                    {
                        dlgOk.SetHeading(Utility.GetLocalizedText(TextId.Information));
                        dlgOk.SetLine(1, Utility.GetLocalizedText(TextId.NoMoreCategoriesToAdd));
                        dlgOk.DoModal(GetID);
                    }
                }
            }
            else if (control == _clearButton)
            {
                OnClearRules(true);
                ShowSearchResults(string.Empty);
                UpdateButtonStates();
            }
            else if (control == _sortByButton)
            {
                if (_isInSubDirectory)
                {
                    GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_MENU);
                    if (dlg == null)
                    {
                        return;
                    }
                    dlg.Reset();
                    dlg.SetHeading(495);         //Sort Options
                    dlg.AddLocalizedString(620); //channel
                    dlg.AddLocalizedString(621); //date
                    dlg.AddLocalizedString(268); //title/name

                    // set the focus to currently used sort method
                    dlg.SelectedLabel = (int)_currentSortMethod;

                    // show dialog and wait for result
                    dlg.DoModal(GetID);
                    if (dlg.SelectedId == -1)
                    {
                        return;
                    }
                    _currentSortMethod = (SortMethod)dlg.SelectedLabel;
                    OnSort();
                }
            }
            else if (control == _viewsList)
            {
                GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECTED, GetID, 0, control.GetID, 0, 0, null);
                OnMessage(msg);
                int iItem = (int)msg.Param1;
                if (actionType == Action.ActionType.ACTION_SELECT_ITEM)
                {
                    OnSelectItem(iItem);
                }
                if (actionType == Action.ActionType.ACTION_SHOW_INFO)
                {
                    OnShowContextMenu();
                }
            }
        }
コード例 #26
0
ファイル: GUIPictureExif.cs プロジェクト: hnjm/MediaPortal-1
        private void SetExifGUIListItems()
        {
            try
            {
                if (listExifProperties != null)
                {
                    listExifProperties.Clear();
                }
                else
                {
                    return;
                }

                GUIListItem fileitem = new GUIListItem();
                fileitem.Label           = Path.GetFileNameWithoutExtension(_currentPicture).ToUpperInvariant();
                fileitem.Label2          = GUILocalizeStrings.Get(863);
                fileitem.IconImage       = Thumbs.Pictures + @"\exif\data\file.png";
                fileitem.ThumbnailImage  = fileitem.IconImage;
                fileitem.OnItemSelected += OnItemSelected;
                listExifProperties.Add(fileitem);

                string addrurl = string.Empty;

                Type type = typeof(ExifMetadata.Metadata);
                foreach (FieldInfo prop in type.GetFields())
                {
                    string value   = string.Empty;
                    string mapurl  = string.Empty;
                    string mapfile = string.Empty;
                    string caption = prop.Name.ToCaption() ?? prop.Name;
                    switch (prop.Name)
                    {
                    case nameof(ExifMetadata.Metadata.ImageDimensions):
                        value = _currentMetaData.ImageDimensionsAsString();
                        break;

                    case nameof(ExifMetadata.Metadata.Resolution):
                        value = _currentMetaData.ResolutionAsString();
                        break;

                    case nameof(ExifMetadata.Metadata.Location):
                        if (_currentMetaData.Location != null)
                        {
                            string latitude  = _currentMetaData.Location.Latitude.ToLatitudeString() ?? string.Empty;
                            string longitude = _currentMetaData.Location.Longitude.ToLongitudeString() ?? string.Empty;
                            if (!string.IsNullOrEmpty(latitude) && !string.IsNullOrEmpty(longitude))
                            {
                                value   = latitude + " / " + longitude;
                                mapurl  = GetMapURL(_currentMetaData.Location.Latitude, _currentMetaData.Location.Longitude, out mapfile);
                                addrurl = GetAddressURL(_currentMetaData.Location.Latitude, _currentMetaData.Location.Longitude);
                            }
                        }
                        break;

                    case nameof(ExifMetadata.Metadata.Altitude):
                        if (_currentMetaData.Location != null)
                        {
                            value = _currentMetaData.Altitude.ToAltitudeString();
                        }
                        break;

                    case nameof(ExifMetadata.Metadata.HDR):
                        continue;

                    default:
                        value = ((ExifMetadata.MetadataItem)prop.GetValue(_currentMetaData)).DisplayValue;
                        break;
                    }
                    if (!string.IsNullOrEmpty(value))
                    {
                        GUIListItem item = new GUIListItem();
                        item.Label           = value.ToValue() ?? value;
                        item.Label2          = caption;
                        item.IconImage       = Thumbs.Pictures + @"\exif\data\" + prop.Name + ".png";
                        item.ThumbnailImage  = item.IconImage;
                        item.OnItemSelected += OnItemSelected;
                        listExifProperties.Add(item);

                        if (!string.IsNullOrEmpty(mapurl))
                        {
                            ThreadPool.QueueUserWorkItem(delegate { MapDownload(mapurl, mapfile, ref item); });
                        }
                    }
                }
                ThreadPool.QueueUserWorkItem(delegate
                {
                    if (!string.IsNullOrEmpty(addrurl))
                    {
                        GetAddress(addrurl);
                    }
                    GetHistogram();
                });

                if (listExifProperties.Count > 0)
                {
                    listExifProperties.SelectedListItemIndex = 0;
                    _currentSelectedItem = 0;
                    SelectItem();
                }
            }
            catch (Exception ex)
            {
                Log.Error("GUIPicturesExif exception SetExifGUIListItems: {0}", ex.Message);
            }
        }
コード例 #27
0
        private void PopulateListControl(IEnumerable <TraktSearchResult> search, int searchLevel = 0)
        {
            resultListControl.Clear();
            listItems.Clear();
            GUIListItem item;

            if (searchlevel < 1)
            {
                //manualSearch button, it's first search
                item       = new GUIListItem("Manual Search");
                item.TVTag = "FirstButton";
                Add(item);
            }
            else
            {
                item       = new GUIListItem("Back");
                item.TVTag = "FirstButton";
                Add(item);
            }
            //Now populating items
            IEnumerator <TraktSearchResult> p = search.GetEnumerator();

            while (p.MoveNext())
            {
                if (p.Current.Type == "show")
                {
                    item = new GUIListItem(p.Current.Show.Title);
                    //item.Label = p.Current.Show.Title;
                    //item.Label2 = p.Current.Type;
                    item.TVTag = p.Current.Show;
#if DEBUG
                    TraktLogger.Info("Adding '{0}' to item '{1}'. Type detected: '{2}'", p.Current.Show.Title, item.Label, p.Current.Type);
#endif
                    Add(item);
                }
                if (p.Current.Type == "season")
                {
                    item = new GUIListItem(string.Format("Season {0}", p.Current.Season.Number));
                    //item.Label = "Season " + p.Current.Season.Number;
                    // item.Label2 = p.Current.Season.Number.ToString();
                    item.TVTag = p.Current.Season;
#if DEBUG
                    TraktLogger.Info("adding Season '{0}' to the list as {1}. Object type: {2}", p.Current.Season.Number, p.Current.Type, p.Current.Season.ToString());
#endif
                    Add(item);
                }
                if (p.Current.Type == "episode")
                {
                    item = new GUIListItem(string.Format("Episode {0}: {1} ", p.Current.Episode.Number, p.Current.Episode.Title));
                    //item.Label = "Episode " + p.Current.Episode.Number + ": " + p.Current.Episode.Title;
                    item.TVTag = p.Current.Episode;
#if DEBUG
                    TraktLogger.Info("adding Episode '{0}' to the list", p.Current.Episode.Number);
#endif
                    Add(item);
                }
                if (p.Current.Type == "movie")
                {
                    item = new GUIListItem(p.Current.Movie.Title);
                    //   item.Label = p.Current.Movie.Title;
                    // item.Label2 = p.Current.Type;
                    item.TVTag = p.Current.Movie;
                    Add(item);
                }
            }
            currentSearch = search;
        }
コード例 #28
0
        /// <summary>
        /// Fill the list with channels
        /// </summary>
        private void FillChannelList()
        {
            using (SchedulerServiceAgent tvSchedulerAgent = new SchedulerServiceAgent())
            {
                _channelsListControl.Clear();

                int    i           = 0;
                int    SelectedID  = 0;
                string ChannelLogo = string.Empty;

                if (_currentGroup != null)
                {
                    _currentAndNextPrograms = new List <CurrentAndNextProgram>(
                        tvSchedulerAgent.GetCurrentAndNextForGroup(_currentGroup.ChannelGroupId, true, true, PluginMain.Navigator.LiveStream));
                }
                else
                {
                    _currentAndNextPrograms = new List <CurrentAndNextProgram>();
                }

                Channel currentChannel = PluginMain.Navigator.CurrentChannel;
                Channel prevChannel    = PluginMain.Navigator.GetPreviousChannel(this.ChannelType);

                foreach (CurrentAndNextProgram currentAndNext in _currentAndNextPrograms)
                {
                    i++;
                    sb.Length = 0;
                    GUIListItem item = new GUIListItem("");
                    item.TVTag = currentAndNext.Channel;

                    sb.Append(currentAndNext.Channel.DisplayName);
                    ChannelLogo = Utility.GetLogoImage(currentAndNext.Channel, tvSchedulerAgent);

                    if (!string.IsNullOrEmpty(ChannelLogo))
                    {
                        item.IconImageBig = ChannelLogo;
                        item.IconImage    = ChannelLogo;
                    }
                    else
                    {
                        item.IconImageBig = string.Empty;
                        item.IconImage    = string.Empty;
                    }

                    ActiveRecording activeRecording;
                    if (PluginMain.IsChannelRecording(currentAndNext.Channel.ChannelId, out activeRecording))
                    {
                        if (_showStateIcons)
                        {
                            item.PinImage = RecordingIcon;
                        }
                        else
                        {
                            sb.Append(" ");
                            sb.Append(recordingText);
                        }
                        item.IsPlayed = (currentAndNext.LiveState == ChannelLiveState.NotTunable ||
                                         currentAndNext.LiveState == ChannelLiveState.NoFreeCard);
                    }
                    else
                    {
                        switch (currentAndNext.LiveState)
                        {
                        case ChannelLiveState.NotTunable:
                        case ChannelLiveState.NoFreeCard:
                            item.IsPlayed = true;
                            if (_showStateIcons)
                            {
                                item.PinImage = UnavailableIcon;
                            }
                            else
                            {
                                sb.Append(" ");
                                sb.Append(unavailableText);
                            }
                            break;

                        default:
                            item.IsPlayed = false;
                            if (_showStateIcons)
                            {
                                item.PinImage = AvailableIcon;
                            }
                            break;
                        }
                    }

                    if (currentChannel != null)
                    {
                        if (currentChannel.ChannelId == currentAndNext.Channel.ChannelId)
                        {
                            item.IsRemote = true;
                            SelectedID    = _channelsListControl.Count;

                            if (_showStateIcons && item.PinImage != RecordingIcon &&
                                item.PinImage != UnavailableIcon)
                            {
                                item.PinImage = TimeshiftingIcon;
                            }
                            else if (!_showStateIcons)
                            {
                                sb.Append(" ");
                                sb.Append(timeshiftingText);
                            }
                        }
                    }
                    else if (prevChannel != null &&
                             prevChannel.ChannelId == currentAndNext.Channel.ChannelId)
                    {
                        item.IsRemote = true;
                        SelectedID    = _channelsListControl.Count;
                    }

                    sbTmp.Length = 0;

                    bool hasNow = currentAndNext.Current != null;
                    if (hasNow)
                    {
                        sbTmp.Append(currentAndNext.Current.CreateProgramTitle());
                    }
                    else
                    {
                        sbTmp.Append(noDataAvailableText);
                    }

                    item.Label2 = sbTmp.ToString();
                    sbTmp.Insert(0, nowText);
                    item.Label3 = sbTmp.ToString();

                    sbTmp.Length = 0;

                    if (_showChannelNumber)
                    {
                        sb.Append(" - ");
                        if (!_byIndex)
                        {
                            if (currentAndNext.Channel.LogicalChannelNumber.HasValue)
                            {
                                sb.Append(currentAndNext.Channel.LogicalChannelNumber.Value.ToString());
                            }
                        }
                        else
                        {
                            sb.Append(i);
                        }
                    }

                    if (hasNow)
                    {
                        sb.Append(" - ");
                        sb.Append(currentAndNext.CurrentPercentageComplete);
                        sb.Append("%");
                    }

                    if (currentAndNext.Next != null)
                    {
                        sbTmp.Append(/*currentAndNext.Next.StartTime.ToShortTimeString() + " " + */ currentAndNext.Next.CreateProgramTitle());
                    }
                    else
                    {
                        sbTmp.Append(noDataAvailableText);
                    }

                    item.Label2 = sb.ToString();
                    sbTmp.Insert(0, nextText);
                    item.Label = sbTmp.ToString();

                    _channelsListControl.Add(item);
                }
                _channelsListControl.SelectedListItemIndex = SelectedID;
                Log.Debug("miniguide: state check + filling channel list completed");

                if (_channelsListControl.GetID == 37)
                {
                    GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SETFOCUS, GetID, 0, 37, 0, 0, null);
                    OnMessage(msg);
                }

                sb.Length    = 0;
                sbTmp.Length = 0;
            }
        }