![]() |
|
![]() |
#51 |
Senior Member
Регистрация: 17.12.2012
Сообщений: 166
|
![]() Код:
TiXmlDocument xmlDoc; if (!xmlDoc.Parse(strXML)) { XBMC->Log(LOG_ERROR, "invalid EPG data (no/invalid data found at '%s')", m_strXMLTVUrl.c_str()); return false; } Лучше это так написать: Код:
TiXmlDocument xmlDoc; xmlDoc.Parse(strXML); if (xmlDoc.Error()) { XBMC->Log(LOG_ERROR, "invalid EPG data (no/invalid data found at '%s')", m_strXMLTVUrl.c_str()); return false; } Последний раз редактировалось ViPetroFF; 19.01.2013 в 22:05. Причина: подправил форматирование кода |
![]() |
![]() |
![]() |
#52 |
Senior Member
Регистрация: 12.12.2012
Сообщений: 1,674
|
![]()
Спасибо за замечания. Если будут еще - пишите, или дам доступ к репозитарию
![]() 2All: Друзья, скачиваний больше чем коментариев. Неужели всех всё устраивает? ![]() Планы на будующие релизы: 1. Улучшение настроек (в случае локальных файлов плейлиста и программы, возможность выбрать их через UI xbmc). 2. Добавление настройки сдвига EPG по времени. 3. Добавление настройки папки с логотипами каналов. |
![]() |
![]() |
![]() |
#53 | |
Senior Member
Регистрация: 01.12.2011
Адрес: Украина.Львов
Сообщений: 164
|
![]() Цитата:
также хотелось бы конвертер плэлиста в нужный формат, думаю это реально - такой как Roman_V_M делал для своей разработки...
__________________
Мать: Asus P8z68 V LX; Проц:Intel® Core™ i3-2120; Память:4Gb; Видео:интегрированное; Дисплеи: Asus 19'' и ТВ Samsung 32''; Пульт: китайского проискождения; Ось: Win7x86+ АССТЕР x32; XBMC: Eden + PVR |
|
![]() |
![]() |
![]() |
#54 | |
Senior Member
Регистрация: 17.12.2012
Сообщений: 166
|
![]()
Есть предложение по иконкам
![]() Предлагаю в том случае если иконка канала не нашлась по имени файла поискать её в стандартном наборе аддона. Вот тут есть xbmc плагин с набором неплохих иконок, версия 0.1.0, и готовым map файлом к именам каналов "canal_list.py" в формате Цитата:
Код:
std::map<std::wstring, int> m_mapLogo; string logoCfgFile = g_strClientPath; if (logoCfgFile.at(logoCfgFile.size() - 1) == '\\' || logoCfgFile.at(logoCfgFile.size() - 1) == '/') { logoCfgFile.append("canal_list.py"); } else { logoCfgFile.append("\\canal_list.py"); } void* hFile = XBMC->OpenFile(logoCfgFile.c_str(), 0); if (hFile != NULL) { CStdString buffer; while (XBMC->ReadFileString(hFile, buffer.SetBuf(256), 256)) { buffer.RelBuf(); int ndx = buffer.Find(':'); if(ndx > 0) { CStdString name, id; name = buffer.Left(ndx); id = buffer.Mid(ndx + 1); int ndxBegin = name.Find('\"'); int ndxEnd = name.ReverseFind('\"'); if(ndxBegin > -1 && ndxEnd > ndxBegin) { name = name.Mid(ndxBegin + 1, ndxEnd - ndxBegin - 1); } else { name.Empty(); } int iId = 0; ndxBegin = id.Find('\"'); ndxEnd = id.ReverseFind('\"'); if(ndxBegin > -1 && ndxEnd > ndxBegin) { id = id.Mid(ndxBegin + 1, ndxEnd - ndxBegin - 1); iId = atoi(id); } typedef pair <wstring, int> StrIntPair; if(!name.IsEmpty() && iId > 0) { CStdStringW nameW = UTF8Util::ConvertUTF8ToUTF16(name.c_str()); m_mapLogo.insert(StrIntPair(nameW.ToLower(), iId)); } } } XBMC->Log(LOG_DEBUG, "%s - insert to map %u channel to id matches", __FUNCTION__, m_mapLogo.size()); XBMC->CloseFile(hFile); } else { XBMC->Log(LOG_ERROR, "can not open %s for read", logoCfgFile.c_str()); } typedef const_mem_fun1_ref_t<int, const CStdString, typename CStdString::value_type> TStrFindFunc1; typedef binder1st<TStrFindFunc1> TStrFindFunc1Binder; class charfinder: unary_function<typename CStdString::value_type, bool> { public: charfinder(const TStrFindFunc1Binder& binder):_FuncBinder(binder){} result_type operator()(argument_type ch) { return (result_type)(_FuncBinder(ch) > -1); } private: const TStrFindFunc1Binder& _FuncBinder; }; std::string PVRDemoData::GetIconPath(LPCSTR lpszIcoFName) const { string iconFile = g_strClientPath; string iconName = lpszIcoFName; const CStdString chars("\\/:*?|<>"); TStrFindFunc1 funcFind(&CStdString::Find); TStrFindFunc1Binder binderFind(funcFind, chars); charfinder findPred(binderFind); replace_if(iconName.begin(), iconName.end(), findPred, '~') ; CStdStringW strNameW = UTF8Util::ConvertUTF8ToUTF16(iconName.c_str()); std::map<std::wstring, int>::const_iterator pos = m_mapLogo.find(strNameW.Trim().ToLower()); if(m_mapLogo.end() != pos && pos->second > 0) { if (iconFile.at(iconFile.size() - 1) == '\\' || iconFile.at(iconFile.size() - 1) == '/') iconFile.append("Logo\\"); else iconFile.append("\\Logo\\"); CStdString strName; strName.Format("%.3d.png", pos->second); iconFile.append(strName.c_str()); } else { if (iconFile.at(iconFile.size() - 1) == '\\' || iconFile.at(iconFile.size() - 1) == '/') iconFile.append("Icons\\"); else iconFile.append("\\Icons\\"); iconFile.erase(iconFile.begin(), find_if(iconFile.begin(), iconFile.end(), NotSpace<string::value_type>())); string::const_reverse_iterator it = find_if(iconFile.rbegin(), iconFile.rend(), NotSpace<string::value_type>()); iconFile.erase(!(it == iconFile.rend()) ? iconFile.find_last_of(*it) + 1 : 0); //iconFile.append(WideCharToMultiByte(strNameW)); iconFile.append(iconName); iconFile.append(".png"); } //XBMC->Log(LOG_DEBUG, "%s - icon path: %s", __FUNCTION__, iconFile.c_str()); return iconFile; } |
|
![]() |
![]() |
![]() |
#55 |
Junior Member
Регистрация: 04.02.2011
Сообщений: 25
|
![]()
Указываю ссылку на плейлист нашего провайдера и читаю в логах что плейлист либо отсутвует либо неправильный. Хотя из соседней темы этот же плейлист конвертируется и нормально добавляется в pvr.demo. Подскажите пожалуйста в чем может быть проблема?
P.S. Клал плейлист в папку плагина с переименовыванием и все также неработает. |
![]() |
![]() |
![]() |
#56 |
Junior Member
Регистрация: 04.02.2011
Сообщений: 25
|
![]()
Указываю ссылку на плейлист нашего провайдера и читаю в логах что плейлист либо отсутвует либо неправильный. Хотя из соседней темы этот же плейлист конвертируется и нормально добавляется в pvr.demo. Подскажите пожалуйста в чем может быть проблема?
P.S. Клал плейлист в папку плагина с переименовыванием и все также неработает. |
![]() |
![]() |
![]() |
#57 | |
Senior Member
Регистрация: 03.08.2011
Сообщений: 224
|
![]() Цитата:
olegon85 а если вписать ссылка типа c:\папка\плейлист.m3u ? У меня, как видите та-же проблема ((( win7 64 RC3 |
|
![]() |
![]() |
![]() |
#58 |
Junior Member
Регистрация: 04.02.2011
Сообщений: 25
|
![]()
Вот блин нифига. Пока непонятная штука. На десктопе сейчас обновил xbmc 11 до 12rc3 поставил плагин и кинул плейлист в с:\123\iptv.m3u и так и прописал. Все заработало. Пойду теперь тестить на компе у телека.
|
![]() |
![]() |
![]() |
#59 |
Junior Member
Регистрация: 04.02.2011
Сообщений: 25
|
![]()
Положил именно этот файл плейлист на комп под телеком где был сразу только xbmc 12rc3 и нифига. Надо чет думать. Что-то тут нето
|
![]() |
![]() |
![]() |
#60 | |
Member
Регистрация: 14.04.2012
Сообщений: 40
|
![]() Цитата:
![]() Заметил в названии темы "Android ASAP" ![]() |
|
![]() |
![]() |
![]() |
Метки |
epg, ip-tv, iptv, m3u, plugin, pvr |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
IPTV для XBMC? | Hexus | Помощь по плагинам | 65 | 13.05.2016 20:28 |
XBMC + IPTV + Apple TV (РЕШЕНО) | Mastyf | Подсказки, описания и FAQ по XBMC | 6 | 06.01.2013 18:28 |
Плагин для IP-TV провайдеров | Vitaliy86 | Связь с разработчиками XBMC | 34 | 07.12.2012 00:40 |
IPTV+XBMC+LightPack | lel | Общие темы для обсуждения | 3 | 14.07.2012 22:22 |
IPTV на XBMC + спутниковое | Roha | Поддержка платформы Linux \ Live | 33 | 28.02.2012 11:12 |