Hallo zusammen,
nun hab' ich da noch einen Locking Fehler im skinnopacity (Channel-Info):
Code
Aug 6 14:10:52 roadrunner vdr: [13420] --- begin invalid lock sequence report
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 R - - - R - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 * - - - U - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 U - - - - - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 R - - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 U - - - - - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 R - - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 U - - - - - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 - R - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 - U - - - - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 R - - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 U - - - - - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 W - - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 * - - - R - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 * - - - U - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 U - - - - - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 - R - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 - * - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 - * - - - - - - - - U
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 - * - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 R * - - - - - - - - L
Aug 6 14:10:52 roadrunner vdr: [13420] 13420 invalid lock sequence: 1 Timers
Aug 6 14:10:52 roadrunner vdr: [13420] full backtrace:
Aug 6 14:10:52 roadrunner vdr: [13420] /usr/bin/vdr cStateLock::Lock(cStateKey&, bool, int) calling ?? at ??:0
Aug 6 14:10:52 roadrunner vdr: [13420] /usr/bin/vdr cTimers::GetTimersRead(cStateKey&, int) calling ?? at ??:0
Aug 6 14:10:52 roadrunner vdr: [13420] /usr/lib/vdr/plugins/libvdr-skinnopacity.so.2.3.8 cNopacityDisplayChannelView::DrawSourceInfo() at displaychannelview.c:803
Aug 6 14:10:52 roadrunner vdr: [13420] /usr/lib/vdr/plugins/libvdr-skinnopacity.so.2.3.8 cNopacityDisplayChannel::Flush() at displaychannel.c:169
Aug 6 14:10:52 roadrunner vdr: [13420] /usr/bin/vdr cDisplayChannel::ProcessKey(eKeys) calling ?? at ??:0
Aug 6 14:10:52 roadrunner vdr: [13420] /usr/bin/vdr cDisplayChannel::cDisplayChannel(eKeys) calling ?? at ??:0
Aug 6 14:10:52 roadrunner vdr: [13420] /usr/bin/vdr main calling ?? at ??:0
Aug 6 14:10:52 roadrunner vdr: [13420] /lib/x86_64-linux-gnu/libc.so.6 __libc_start_main at ??:?
Aug 6 14:10:52 roadrunner vdr: [13420] /usr/bin/vdr _start calling ?? at ??:0
Aug 6 14:10:52 roadrunner vdr: [13420] --- end invalid lock sequence report
Display More
Die gibt es ja entsprechend in anderen Plugins, die Timer-Infos mit anzeigen.
Nun hat der VDR bereits "Channels" gelockt:
Code
// --- cDisplayChannel -------------------------------------------------------
cDisplayChannel *cDisplayChannel::currentDisplayChannel = NULL;
cDisplayChannel::cDisplayChannel(int Number, bool Switched)
:cOsdObject(true)
{
currentDisplayChannel = this;
group = -1;
withInfo = !Switched || Setup.ShowInfoOnChSwitch;
displayChannel = Skins.Current()->DisplayChannel(withInfo);
number = 0;
timeout = Switched || Setup.TimeoutRequChInfo;
cOsdProvider::OsdSizeChanged(osdState); // just to get the current state
positioner = NULL;
channel = NULL;
LOCK_CHANNELS_READ;
channel = Channels->GetByNumber(Number);
lastPresent = lastFollowing = NULL;
if (channel) {
DisplayChannel();
DisplayInfo();
displayChannel->Flush();
}
lastTime.Set();
}
Display More
Das kann man im Plugin
Code
void cNopacityDisplayChannelView::DrawSourceInfo(void) {
const cChannel *channel = cDevice::ActualDevice()->GetCurrentlyTunedTransponder();
const cSource *source = (channel) ? Sources.Get(channel->Source()) : NULL;
cString channelInfo = "";
if (source) {
channelInfo = cString::sprintf("%s #%d", source->Description(), cDevice::ActualDevice()->DeviceNumber());
}
if (cRecordControls::Active()) {
LOCK_TIMERS_READ;
cSortedTimers SortedTimers(Timers);
bool first = true;
[..]
Display More
ja nicht mehr "umdrehen". Was tun? In menu.c "Timers" mit locken?
Stefan