Commit c473444
Fix Last Scanned bouquet m_new_servicerefs synchronization (#4303)
The m_new_servicerefs vector (used to preserve scan order in the Last
Scanned bouquet) was getting out of sync with m_new_services in several
ways:
1. In channelDone(): m_new_servicerefs.push_back() was called BEFORE
checking if the insert succeeded. If the service already existed
(from SDT), it would create a duplicate entry with wrong serviceType.
2. In processSDT()/processVCT(): When replacing a PMT entry with
different serviceType, m_new_servicerefs was not updated.
3. In processSDT()/processVCT(): New services (not replacing existing)
were not added to m_new_servicerefs at all.
This caused the serviceRefs in the Last Scanned bouquet to not match
what's in lamedb, causing setCurrentSelection() to fail and fall back
to the first channel.
Fix:
- channelDone(): Only add to m_new_servicerefs after successful insert
- processSDT()/processVCT(): Update m_new_servicerefs when replacing
an existing entry (update serviceRef in place)
- processSDT()/processVCT(): Add new services to m_new_servicerefs
- Send evtNewService for all successful inserts (not just !found_existing)
so the scan UI shows all services correctly
Co-authored-by: WXbet <57314510+WXbet@users.noreply.github.com>1 parent 32066f5 commit c473444
1 file changed
+37
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1241 | 1241 | | |
1242 | 1242 | | |
1243 | 1243 | | |
1244 | | - | |
1245 | 1244 | | |
1246 | 1245 | | |
1247 | 1246 | | |
1248 | 1247 | | |
| 1248 | + | |
1249 | 1249 | | |
1250 | 1250 | | |
1251 | 1251 | | |
| |||
1794 | 1794 | | |
1795 | 1795 | | |
1796 | 1796 | | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
| 1809 | + | |
| 1810 | + | |
| 1811 | + | |
1797 | 1812 | | |
1798 | 1813 | | |
1799 | 1814 | | |
| |||
1805 | 1820 | | |
1806 | 1821 | | |
1807 | 1822 | | |
1808 | | - | |
| 1823 | + | |
1809 | 1824 | | |
| 1825 | + | |
| 1826 | + | |
1810 | 1827 | | |
1811 | 1828 | | |
1812 | 1829 | | |
| |||
1954 | 1971 | | |
1955 | 1972 | | |
1956 | 1973 | | |
| 1974 | + | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
| 1988 | + | |
1957 | 1989 | | |
1958 | 1990 | | |
1959 | 1991 | | |
| |||
1965 | 1997 | | |
1966 | 1998 | | |
1967 | 1999 | | |
1968 | | - | |
| 2000 | + | |
1969 | 2001 | | |
| 2002 | + | |
| 2003 | + | |
1970 | 2004 | | |
1971 | 2005 | | |
1972 | 2006 | | |
| |||
0 commit comments