daffy Posted November 13, 2005 Share Posted November 13, 2005 Hi, the RDS text (from a pure audio channel) disappears with a delay after a channel switch. Steps: * Start DVBViewer * Switch to radio station with RDS text offerings (e.g. SWR3) * Wait for RDS text to pop up ("Sie hoeren SWR3 **** WILDWUX ****") * The moment text pops up, switch channel to a TV station [if you wait, the RDS text will disappear *automatically*] // exp: TV programme without RDS text at the top // act: well, the RDS text (of the radio station) remains at the top of the screen for two or three seconds. Granted, this is minor :-) [bTW, I am extremely pleased that DVBViewer Pro now very, very smoothly switches radio stations. 320 kbit/s digital reception is quite a bit better than inference-infested analog reception.] Quote Link to comment
Klausing Posted November 13, 2005 Share Posted November 13, 2005 The viewer collect the data after channel switching and after a few seconds you can see it. The reason is this information are included in radio data and would not send permanently. You can find this information every few seconds. Thats the reason for delay. Quote Link to comment
Derrick Posted November 13, 2005 Share Posted November 13, 2005 ..haven't checked RDS for a long time but imho @daffy is aware of the delay due to collecting the data first. But that's no reason not to flush the memory after switching to another channnel.. Quote Link to comment
daffy Posted November 13, 2005 Author Share Posted November 13, 2005 ..haven't checked RDS for a long time but imho @daffy is aware of the delay due to collecting the data first. Yup. My point is not that it appears with delay, but that it remains on screen after a change of channels :-) Quote Link to comment
Guest Lars_MQ Posted November 13, 2005 Share Posted November 13, 2005 The data is of course flushed directly on channelchange. You can test it by reading out the datatag #rds.text. The notice however is displayed asyncron and dissappears on its own. It would be possible to close it by force but not very wise, cause the same mechanism is used to display all kinds of messages and the displayer itself has no knowledge about the displayed data, so it is possible to close the wrong message on a channelchange. But you can disable the rds display in options -> radio & tv. Quote Link to comment
daffy Posted November 13, 2005 Author Share Posted November 13, 2005 The notice however is displayed asyncron and dissappears on its own. Broadcast a message to every asynchronous object out there, letting them know that the asyn object of class WhateverRdsClass please disappear now ;-) The only thing this requires is a message box scheme to which WhateverRdsClass may subscribe (typically implemented using a collection of object references with self-enlistment and self-delisting). This provides most excellent decoupling, while enabling asynchronous communication at the same time. For the record, I have no clue about the internal architecture of DVBViewer, so please apply various grains of salt ;-) Again, this is just a minor thing. If it is too difficult to fix because of architectural limitations - well... "sod it"? Quote Link to comment
Guest Lars_MQ Posted November 13, 2005 Share Posted November 13, 2005 I don't think the observer pattern is needed in a situation like this. (If I understood Joanna Carter correctly this is what you describe - well sort of). We're talking about an app where data is bound to a treeview (hopefully this will be changed soon), not a 3tier business app with a clean separation of the layers. So even if it is possible to use the internal notify system of the OSD, it has no influence about the code delivering the RDS message. The only chance would be reacting to the channelchange system message but this would close the message on every channelchange, which of course is not wanted. Like you said, it's only a really minor annoyance. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.