diff -Nru xbmc-addon-xvdr-0.9.8-405~f267086/debian/changelog xbmc-addon-xvdr-0.9.8-411~77a27f8/debian/changelog --- xbmc-addon-xvdr-0.9.8-405~f267086/debian/changelog 2013-12-30 15:03:53.000000000 +0000 +++ xbmc-addon-xvdr-0.9.8-411~77a27f8/debian/changelog 2014-03-06 17:25:30.000000000 +0000 @@ -1,5 +1,35 @@ -xbmc-addon-xvdr (0.9.8-405~f267086-ppa1~quantal) quantal; urgency=medium +xbmc-addon-xvdr (0.9.8-411~77a27f8-ppa1~quantal) quantal; urgency=medium + * [77a27f8345cb665f9aca8baf00019eda5a7ca388] + never mark a timer as conlicting when it's recording + + + * [0450eb530f058303d79de50f1f57dd674e3bf2be] + [libxvdr] do not trigger a timer update when a recording finished + + - timer changes are always signalled by the server + + + * [895447419ae035ef3d8fc47186af8fcad03dd1be] + timer state fixes + + + * [2d2fccafe6306bc286ab97da58cc788ed4f320a6] + [libxvdr] do not block the main thread for 1000ms + + decreased timeout for packets to 100ms. this should improve + channel switching times. now the main thread doesn't need to + wait 1000ms if there aren't any packets. + + + * [df75826f529adbe7c44b585a33c343a7d78cfd31] + pass provider and service information to XBMC + + + * [69f8c6410fcad8aa6477ccbf2d1be7f4d8c15b99] + [libxvdr] read provider and service information from server + + * [dfee208740ffc5bebc0affd32e6227d5fc4070f7] bump xbmc.gui @@ -1695,4 +1725,4 @@ merge pvr-testing2 svn rev 32591 into trunk - -- bigbax Mon, 30 Dec 2013 19:03:52 +0400 + -- bigbax Thu, 06 Mar 2014 21:25:30 +0400 diff -Nru xbmc-addon-xvdr-0.9.8-405~f267086/src/libxvdr/include/xvdr/dataset.h xbmc-addon-xvdr-0.9.8-411~77a27f8/src/libxvdr/include/xvdr/dataset.h --- xbmc-addon-xvdr-0.9.8-405~f267086/src/libxvdr/include/xvdr/dataset.h 2013-12-30 15:03:38.000000000 +0000 +++ xbmc-addon-xvdr-0.9.8-411~77a27f8/src/libxvdr/include/xvdr/dataset.h 2014-03-06 17:25:17.000000000 +0000 @@ -184,6 +184,8 @@ uint32_t Strength; uint32_t BER; uint32_t UNC; + std::string ProviderName; + std::string ServiceName; }; SignalStatus& operator<< (SignalStatus& lhs, MsgPacket* rhs); diff -Nru xbmc-addon-xvdr-0.9.8-405~f267086/src/libxvdr/src/connection.cpp xbmc-addon-xvdr-0.9.8-411~77a27f8/src/libxvdr/src/connection.cpp --- xbmc-addon-xvdr-0.9.8-405~f267086/src/libxvdr/src/connection.cpp 2013-12-30 15:03:38.000000000 +0000 +++ xbmc-addon-xvdr-0.9.8-411~77a27f8/src/libxvdr/src/connection.cpp 2014-03-06 17:25:17.000000000 +0000 @@ -657,7 +657,6 @@ const char* str2 = vresp->get_String(); m_client->Recording(str1, str2, on); - m_client->TriggerTimerUpdate(); } else if (vresp->getMsgID() == XVDR_STATUS_TIMERCHANGE) { diff -Nru xbmc-addon-xvdr-0.9.8-405~f267086/src/libxvdr/src/dataset.cpp xbmc-addon-xvdr-0.9.8-411~77a27f8/src/libxvdr/src/dataset.cpp --- xbmc-addon-xvdr-0.9.8-405~f267086/src/libxvdr/src/dataset.cpp 2013-12-30 15:03:38.000000000 +0000 +++ xbmc-addon-xvdr-0.9.8-411~77a27f8/src/libxvdr/src/dataset.cpp 2014-03-06 17:25:17.000000000 +0000 @@ -271,6 +271,11 @@ lhs.BER = rhs->get_U32(); lhs.UNC = rhs->get_U32(); + if(!rhs->eop()) { + lhs.ProviderName = rhs->get_String(); + lhs.ServiceName = rhs->get_String(); + } + return lhs; } diff -Nru xbmc-addon-xvdr-0.9.8-405~f267086/src/libxvdr/src/demux.cpp xbmc-addon-xvdr-0.9.8-411~77a27f8/src/libxvdr/src/demux.cpp --- xbmc-addon-xvdr-0.9.8-405~f267086/src/libxvdr/src/demux.cpp 2013-12-30 15:03:38.000000000 +0000 +++ xbmc-addon-xvdr-0.9.8-411~77a27f8/src/libxvdr/src/demux.cpp 2014-03-06 17:25:17.000000000 +0000 @@ -116,7 +116,7 @@ if (pkt == NULL) { m_lock.Unlock(); - m_cond.Wait(1000); + m_cond.Wait(100); m_lock.Lock(); pkt = m_buffer->get(); } @@ -174,7 +174,7 @@ return NULL; } - m_cond.Wait(1000); + m_cond.Wait(100); m_lock.Lock(); bEmpty = m_queue.empty(); diff -Nru xbmc-addon-xvdr-0.9.8-405~f267086/src/xvdr/XBMCClient.cpp xbmc-addon-xvdr-0.9.8-411~77a27f8/src/xvdr/XBMCClient.cpp --- xbmc-addon-xvdr-0.9.8-405~f267086/src/xvdr/XBMCClient.cpp 2013-12-30 15:03:38.000000000 +0000 +++ xbmc-addon-xvdr-0.9.8-411~77a27f8/src/xvdr/XBMCClient.cpp 2014-03-06 17:25:17.000000000 +0000 @@ -381,12 +381,14 @@ lhs.Summary = rhs.strSummary; lhs.Title = rhs.strTitle; - if(rhs.state == PVR_TIMER_STATE_RECORDING) + lhs.State = 0; + + if(rhs.state == PVR_TIMER_STATE_RECORDING) { lhs.State = 8; - if(rhs.state == PVR_TIMER_STATE_SCHEDULED) + } + else if(rhs.state == PVR_TIMER_STATE_SCHEDULED) { lhs.State = 1; - if(rhs.state == PVR_TIMER_STATE_NEW) - lhs.State = 0; + } return lhs; } @@ -407,16 +409,20 @@ lhs.iWeekdays = rhs.WeekDays; lhs.startTime = rhs.StartTime; - if(rhs.State == 0) - lhs.state = PVR_TIMER_STATE_NEW; - if(rhs.State & 1) - lhs.state = PVR_TIMER_STATE_SCHEDULED; - if(rhs.State & 1024) - lhs.state = PVR_TIMER_STATE_CONFLICT_OK; - if(rhs.State & 2048) - lhs.state = PVR_TIMER_STATE_CONFLICT_NOK; - if(rhs.State & 8) + lhs.state = PVR_TIMER_STATE_CANCELLED; + + if(rhs.State & 8) { lhs.state = PVR_TIMER_STATE_RECORDING; + } + else if(rhs.State & 2048) { + lhs.state = PVR_TIMER_STATE_CONFLICT_NOK; + } + else if(rhs.State & 1024) { + lhs.state = PVR_TIMER_STATE_CONFLICT_OK; + } + else if(rhs.State & 1) { + lhs.state = PVR_TIMER_STATE_SCHEDULED; + } strncpy(lhs.strDirectory, rhs.Directory.c_str(), sizeof(lhs.strDirectory)); strncpy(lhs.strSummary, rhs.Summary.c_str(), sizeof(lhs.strSummary)); @@ -527,6 +533,8 @@ lhs.iUNC = rhs.UNC; strncpy(lhs.strAdapterName, rhs.AdapterName.c_str(), sizeof(lhs.strAdapterName)); strncpy(lhs.strAdapterStatus, rhs.AdapterStatus.c_str(), sizeof(lhs.strAdapterStatus)); + strncpy(lhs.strProviderName, rhs.ProviderName.c_str(), sizeof(lhs.strProviderName)); + strncpy(lhs.strServiceName, rhs.ServiceName.c_str(), sizeof(lhs.strServiceName)); return lhs; }