示例#1
0
 private void btnShowEPG_Click(object sender, EventArgs e)
 {
     List<ChannelInfo> infos = new List<ChannelInfo>();
     foreach (DataGridViewRow row in gridTVChannels.Rows)
     {
         ChannelInfo info = new ChannelInfo();
         info.channelID = row.Cells[0].Value.ToString();
         info.name = row.Cells[1].Value.ToString();
         infos.Add(info);
     }
 }
        /*
         * No arguments needed
         */
        public override void handleCommand(string command, string[] arguments, ref TvControl.User me)
        {
            string rtspUrl = TVServerConnection.getTimeshiftUrl(ref me);
            bool result = true;
            if (String.IsNullOrEmpty(rtspUrl))
            {
                result = false;
                rtspUrl = "";
            }

            // results = isShifting;url;chanInfo as in ListChannels
            // chanInfo must be the same as the listchannel..
            ChannelInfo c = new ChannelInfo();
            if (result)
            {
                c = TVServerConnection.getTimeshiftInfo(ref me);
            }

            writer.write(writer.makeItemSmart(result.ToString(), rtspUrl, c));
        }
示例#3
0
 private void btnShowEPG_Click(object sender, EventArgs e)
 {
   List<ChannelInfo> infos = new List<ChannelInfo>();
   DataGridView grid = gridTVChannels;
   Button btn = (Button)sender;
   if (btn != btnShowEPG)
     grid = gridRadioChannels;
   foreach (DataGridViewRow row in grid.Rows)
   {
     ChannelInfo info = new ChannelInfo();
     info.channelID = row.Cells[0].Value.ToString();
     info.name = row.Cells[1].Value.ToString();
     infos.Add(info);
   }
   frmEPG frm = new frmEPG(serverIntf, infos);
   frm.Show();
 }
        public List<ChannelInfo> getRadioChannels(string groupName)
        {
            List<ChannelInfo> radioChannels = new List<ChannelInfo>();
            try
            {
                if (groupName == "")
                {
                    TvDatabase.Program epg;
                    foreach (Channel chan in channels)
                    {
                        if (!chan.IsRadio)
                            continue;
                        ChannelInfo channelInfo = new ChannelInfo();
                        channelInfo.channelID = chan.IdChannel.ToString();
                        channelInfo.name = chan.DisplayName;
                        channelInfo.isWebStream = chan.IsWebstream();
                        epg = chan.CurrentProgram;
                        channelInfo.epgNow = new ProgrammInfo();
                        if (epg != null)
                        {
                            channelInfo.epgNow.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
                            channelInfo.epgNow.description = epg.Title;
                        }
                        epg = chan.NextProgram;
                        channelInfo.epgNext = new ProgrammInfo();
                        if (epg != null)
                        {
                            channelInfo.epgNext.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
                            channelInfo.epgNext.description = epg.Title;
                        }
                        radioChannels.Add(channelInfo);
                    }
                }
                else
                {
                    foreach (RadioChannelGroup group in radiogroups)
                    {
                        if (group.GroupName == groupName)
                        {
                            IList<RadioGroupMap> maps = group.ReferringRadioGroupMap();
                            TvDatabase.Program epg;
                            foreach (RadioGroupMap map in maps)
                            {
                                ChannelInfo channelInfo = new ChannelInfo();

                                if (map.ReferencedChannel() == null) continue;

                                channelInfo.channelID = map.ReferencedChannel().IdChannel.ToString();
                                channelInfo.name = map.ReferencedChannel().DisplayName;
                                epg = map.ReferencedChannel().CurrentProgram;
                                channelInfo.epgNow = new ProgrammInfo();
                                if (epg != null)
                                {
                                    channelInfo.epgNow.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
                                    channelInfo.epgNow.description = epg.Title;
                                }
                                epg = map.ReferencedChannel().NextProgram;
                                channelInfo.epgNext = new ProgrammInfo();
                                if (epg != null)
                                {
                                    channelInfo.epgNext.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
                                    channelInfo.epgNext.description = epg.Title;
                                }
                                radioChannels.Add(channelInfo);
                            }
                            if (groupName != "")
                                break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                lastException = ex;
                Console.WriteLine(ex.ToString());
                Log.Error("TVServerXBMC: " + ex.ToString());
                return null;
            }
            return radioChannels;
        }
        public List<ChannelInfo> GetChannelInfosForGroup(string groupName)
        {
            List<ChannelInfo> refChannelInfos = new List<ChannelInfo>();
            try
            {
                if (tvgroups != null)
                {
                    foreach (ChannelGroup group in tvgroups)
                    {
                        if (group.GroupName == groupName || groupName == "")
                        {
                            IList<GroupMap> maps = group.ReferringGroupMap();
                            TvDatabase.Program epg;
                            foreach (GroupMap map in maps)
                            {
                                ChannelInfo channelInfo = new ChannelInfo();
                                channelInfo.channelID = map.ReferencedChannel().IdChannel.ToString();
                                channelInfo.name = map.ReferencedChannel().DisplayName;
                                channelInfo.epgNow = new ProgrammInfo();

                                try
                                {
                                    epg = map.ReferencedChannel().CurrentProgram;
                                    if (epg != null)
                                    {
                                        channelInfo.epgNow.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
                                        channelInfo.epgNow.description = epg.Title;
                                    }
                                    epg = map.ReferencedChannel().NextProgram;
                                    channelInfo.epgNext = new ProgrammInfo();
                                    if (epg != null)
                                    {
                                        channelInfo.epgNext.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
                                        channelInfo.epgNext.description = epg.Title;
                                    }
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Error while obtaining the EPG for channel " + channelInfo.channelID + ": " + e.ToString());
                                    Log.Error("TVServerXBMC: Error while obtaining the EPG for channel " + channelInfo.channelID + ": " + e.ToString());
                                }

                                //Get the tuning details
                                try
                                {
                                    IList<TuningDetail> listtuningdetails = map.ReferencedChannel().ReferringTuningDetail();
                                    foreach (TuningDetail tuningdetail in listtuningdetails)
                                    {
                                        channelInfo.isScrambled = !(tuningdetail.FreeToAir);
                                    }
                                }
                                catch
                                {
                                    channelInfo.isScrambled = false;
                                }

                                refChannelInfos.Add(channelInfo);
                            }
                            if (groupName != "")
                                break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                lastException = ex;
                Console.WriteLine(ex.ToString());
                Log.Error("TVServerXBMC: " + ex.ToString());
                return null;
            }
            return refChannelInfos;
        }
        public ChannelInfo GetChannelInfo(int chanId)
        {
            foreach (Channel chan in channels)
            {
                if (chan.IdChannel == chanId)
                {
                    // this is the channel we want
                    ChannelInfo channelInfo = new ChannelInfo();
                    TvDatabase.Program epg = null;

                    channelInfo.channelID = chan.IdChannel.ToString();
                    channelInfo.name = chan.DisplayName;
                    channelInfo.isWebStream = chan.IsWebstream();
                    channelInfo.epgNow = new ProgrammInfo();
                    channelInfo.epgNext = new ProgrammInfo();

                    try
                    {
                        epg = chan.CurrentProgram;
                        if (epg != null)
                        {
                            channelInfo.epgNow.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
                            channelInfo.epgNow.description = epg.Title;
                        }
                        epg = chan.NextProgram;
                        if (epg != null)
                        {
                            channelInfo.epgNext.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
                            channelInfo.epgNext.description = epg.Title;
                        }
                    }
                    catch { }

                    return channelInfo;
                }
            }
            return null;
        }
 public List<ChannelInfo> GetRadioChannels()
 {
   List<ChannelInfo> radioChannels = new List<ChannelInfo>();
   try
   {
     TvDatabase.Program epg;
     foreach (Channel chan in channels)
     {
       if (!chan.IsRadio)
         continue;
       ChannelInfo channelInfo = new ChannelInfo();
       channelInfo.channelID = chan.IdChannel.ToString();
       channelInfo.name = chan.DisplayName;
       channelInfo.isWebStream = chan.IsWebstream();
       epg = chan.CurrentProgram;
       channelInfo.epgNow = new ProgrammInfo();
       if (epg != null)
       {
         channelInfo.epgNow.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
         channelInfo.epgNow.description = epg.Title;
       }
       epg = chan.NextProgram;
       channelInfo.epgNext = new ProgrammInfo();
       if (epg != null)
       {
         channelInfo.epgNext.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
         channelInfo.epgNext.description = epg.Title;
       }
       radioChannels.Add(channelInfo);
     }
   }
   catch (Exception ex)
   {
     lastException = ex;
     return null;
   }
   return radioChannels;
 }
 public List<ChannelInfo> GetChannelInfosForRadioGroup(string groupName)
 {
   List<ChannelInfo> refChannelInfos = new List<ChannelInfo>();
   try
   {
     foreach (RadioChannelGroup group in radioGroups)
     {
       if (group.GroupName == groupName)
       {
         IList<RadioGroupMap> maps = group.ReferringRadioGroupMap();
         TvDatabase.Program epg;
         foreach (RadioGroupMap map in maps)
         {
           ChannelInfo channelInfo = new ChannelInfo();
           channelInfo.channelID = map.ReferencedChannel().IdChannel.ToString();
           channelInfo.name = map.ReferencedChannel().DisplayName;
           epg = map.ReferencedChannel().CurrentProgram;
           channelInfo.epgNow = new ProgrammInfo();
           if (epg != null)
           {
             channelInfo.epgNow.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
             channelInfo.epgNow.description = epg.Title;
           }
           epg = map.ReferencedChannel().NextProgram;
           channelInfo.epgNext = new ProgrammInfo();
           if (epg != null)
           {
             channelInfo.epgNext.timeInfo = epg.StartTime.ToShortTimeString() + "-" + epg.EndTime.ToShortTimeString();
             channelInfo.epgNext.description = epg.Title;
           }
           refChannelInfos.Add(channelInfo);
         }
         break;
       }
     }
   }
   catch (Exception ex)
   {
     lastException = ex;
     return null;
   }
   return refChannelInfos;
 }