diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 6ec1445..e0ee5b0 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -59,9 +59,24 @@ public partial class MainWindow : Window _epgTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(500) }; _epgTimer.Tick += EpgTimer_Tick; - // Jede Minute prüfen ob Jetzt/Danach noch aktuell sind - _epgRefreshTimer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(60) }; - _epgRefreshTimer.Tick += (_, _) => { if (_currentChannel != null) UpdateNextFromEpgService(_currentChannel); }; + // Jede 10s: EIT-Daten aus Media neu lesen (libVLC feuert MetaChanged nicht bei laufendem EIT-Update) + // Jede 60s: XMLTV Jetzt/Danach refreshen + _epgRefreshTimer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(10) }; + var _epgRefreshTick = 0; + _epgRefreshTimer.Tick += (_, _) => + { + if (_currentChannel == null) return; + // EIT alle 10s neu lesen (FritzBox-TV) + if (_currentChannel.Source == ChannelSource.FritzBox && _currentMedia != null) + UpdateEpgFromMedia(_currentMedia); + // XMLTV nur alle 60s (Online-TV + Danach für alle) + _epgRefreshTick++; + if (_epgRefreshTick >= 6) + { + _epgRefreshTick = 0; + UpdateNextFromEpgService(_currentChannel); + } + }; _epgRefreshTimer.Start(); Loaded += MainWindow_Loaded;