Fait partie du Décor
Karma: 1
Messages: 1365
Hors ligne
Sexe: 
May the Force be with you...
|
 |
« le: 31 Décembre 2009 11:15:39 » |
|
Bonjour, J'ai posé la question sur xbmc.org, mais personne n'arrive à me répondre, peut-être mon anglais très imparfait  Alors, pour les connaisseur de C et XBMC, voila ma question : Je cherche à savoir comment est "codé la mise en cache des images des "Sets" (saga) avec XBMC. Il y à une base "Sets" avec le nom du Set (StrSet) et l'ID (IdSet), apparemment le nom de l'image n'est calculé (CRC) qu'avec l'ID, mais je n'arrive pas à trouvé le format de la chaine passée au calcul. Voici le code : (C): CFileItemPtr pItem(new CFileItem(m_pDS->fv("sets.strSet").get_asString())); CStdString strDir; strDir.Format("%ld/", m_pDS->fv("sets.idSet").get_asInt()); pItem->m_strPath=strBaseDir + strDir; pItem->m_bIsFolder=true; pItem->SetLabelPreformated(true); if (CFile::Exists(pItem->GetCachedVideoThumb())) pItem->SetThumbnailImage(pItem->GetCachedVideoThumb()); else // use the first item's thumb ...
Sur une ID à 1, J'ai essayé "1", "0000001",... rien ne marche. Si quelqu'un à un idée ....
frost: raison de l'édit, changer [ code ]  [ code=c ]
|
|
|
|
« Dernière édition: 04 Janvier 2010 17:46:06 par Frost »
|
Journalisée
|
|
|
|
Fait partie du Décor
Karma: 1
Messages: 1365
Hors ligne
Sexe: 
May the Force be with you...
|
Personne ne connais le C sur ce forum ??  Quelques indication me suffirais, par exemple le format retourné par cette ligne strDir.Format("%ld/", m_pDS->fv("sets.idSet").get_asInt())
|
|
|
|
|
Journalisée
|
|
|
|
Fait partie du Décor
Karma: 6
Messages: 14187
Hors ligne
Sexe: 
Le PHP ?? C'est quoi ????
|
Envoie un Mp à Temhil, ce sujet lui aura peut être échappé.
|
|
|
|
|
Journalisée
|
|
|
|
Made in Québec
Fait partie du Décor
Karma: 3
Messages: 2045
Hors ligne
Sexe: 
RISE
|
dsl mais connait rien en C  Mais j'avais codé un truc pour ppic pour récupérer tous types de tbn dans le cache. j'ai pas encore regarder pour y inclure les sets, mais à première vu dans le code CPP d'xbmc ça se passe à ce niveau (C++): CStdString CFileItem::GetCachedVideoThumb() const { if (IsStack()) return GetCachedThumb(CStackDirectory::GetFirstStackedFile(m_strPath),g_settings.GetVideoThumbFolder(),true); else if (IsVideoDb() && HasVideoInfoTag() && !m_bIsFolder) return GetCachedThumb(GetVideoInfoTag()->m_strFileNameAndPath,g_settings.GetVideoThumbFolder(),true); else return GetCachedThumb(m_strPath,g_settings.GetVideoThumbFolder(),true); }
donc ça doit être la deuxième condition, sinon bien ça la première dsl du peux d'infos
Envoie un Mp à Temhil, ce sujet lui aura peut être échappé.
il connait le C lieu ! 
|
|
|
|
|
Journalisée
|
|
|
|
Fait partie du Décor
Karma: 6
Messages: 14187
Hors ligne
Sexe: 
Le PHP ?? C'est quoi ????
|
Pour Temhil, je sais qu'il connait quelque chose en C mais C++ , C -- , C plus ou moins? je sais plus.
|
|
|
|
|
Journalisée
|
|
|
|
Colocataire
Karma: 0
Messages: 260
Hors ligne
Sexe: 
|
... CFileItemPtr pItem(new CFileItem(m_pDS->fv("sets.strSet").get_asString())); CStdString strDir; strDir.Format("%ld/", m_pDS->fv("sets.idSet").get_asInt()); pItem->m_strPath=strBaseDir + strDir; pItem->m_bIsFolder=true; pItem->SetLabelPreformated(true); if (CFile::Exists(pItem->GetCachedVideoThumb())) pItem->SetThumbnailImage(pItem->GetCachedVideoThumb()); else // use the first item's thumb ... Sur une ID à 1, J'ai essayé "1", "0000001",... rien ne marche. Si quelqu'un à un idée .... %ld/ doit te donner 1/ avec une ID à 1 En espérant que cela puisse t'aider
|
|
|
|
|
Journalisée
|
|
|
|
|
|
|
Tolriq
|
erf ca m'apprendras a aller faire autre chose au lieu de cliquer sur send :p
|
|
|
|
|
Journalisée
|
|
|
|
Fait partie du Décor
Karma: 1
Messages: 1365
Hors ligne
Sexe: 
May the Force be with you...
|
OK, merci, je m'en était douté et j'avais essayé cette syntaxe, mais elle ne me redonne pas le bon CRC. Il ne me reste plus qu'a trouvé ce qu'il y a dans "strBaseDir" ?
|
|
|
|
|
Journalisée
|
|
|
|
Développé Couché
Fait partie du Décor
Karma: 0
Messages: 2511
En ligne
Sexe: 
Developpeur Python petit scarabée
|
Salut Vincent81, En hors du contexte ce n'est pas évident de te donner des réponses précises. Pour être sur il faudra que je récupère tous les code et que je regarde mais vu la complexité du truc je suppose que ca prendrait plsu que 5 min, mais obn essayons de jeter un oeil a ton morceau de code ci dessus. A priori c'est du C++ et non C. Si tu avais tous les fichier source ou bien le chemin ou le trouver ca aiderait.  Le %ld comme mes petits camarades  l'ont dit, c'est la même idée qu'en python ca sera remplace par la valeur d'un long, en gros ca te converti un long en chain de caractere.  m_pDS->fv est un pointer, ici je présume un pointer de fonction, donc ca passerait en parametre une reference a une fonction prerant un String ou char * en parametre ici "sets.strSet". Cette fonction doit retourner un objet sur lequel on appelle la methode get_asString() Ce qui t'interesse c'est le sets qui est soit une structure soit une classe. Une bonne piste est de regarder au source de pItem c'est par lui que tout commence. Bon je ne suis pas certains que ce soit d'une grande aide, mais bon. Dis moi ou est le source du fichier, j'essaierais de jeter un oeil, mais je ne suis pas super dispo ces temps-ci.
|
|
|
|
|
Journalisée
|
|
|
|
Fait partie du Décor
Karma: 1
Messages: 1365
Hors ligne
Sexe: 
May the Force be with you...
|
Bonjour et merci de t'être penché sur mon probléme. Le source est ICICe n'est pas la dernière révision, mais le code des thumbs pour les sets y est. Le "Sets" est une base des XBMC avec Sets.IdSet -> Clef (Integer), Sets.StrSet -> Nom du Set (Chaine) J'ai fait des tests et apparemment le nom du fichier cache pour le thumb d'un set ne dépend pas du nom mais seulement de la clef. J'ai été voir le pItem dans FileItem.cpp mais cela ne m'a pas renseigné plus. J'ai aussi été voir GetCachedVideoThumb() dans le même fichier, mais pas plus de renseignement. Tu peux voir les fichiers ICIPour un Set avec la clef 1 et le nom A, J'ai essayé "1/", "1/a", "videodb://1/", "videodb://1/a", aucune n'a donné le bon cache. Pour info le cache avec la clef = 1 est 7DFB035A Voila ou j'en suis, je continu à chercher quand j'ai un peu de temps.
|
|
|
|
|
Journalisée
|
|
|
|
|
Tolriq
|
il te reste effectivement a trouver le basedir :)
J'ai regarder rapide a priori on tombe sur :
il faut tu calcules le crc32 du 'basedir + id /' et apres le chemin ca serait le 1er chiffre de ton crc/le crc.tbn
|
|
|
|
|
Journalisée
|
|
|
|
Fait partie du Décor
Karma: 1
Messages: 1365
Hors ligne
Sexe: 
May the Force be with you...
|
Oui, effectivement, je pense que c'est le "basedir" qui me reste à trouver. Est-ce "Base Direction" ou "Base Directory" ?? je penche pour la 2ém solution. Pour la suite, c'est le même principe que pour les vignettes...
|
|
|
|
|
Journalisée
|
|
|
|
Fait partie du Décor
Karma: 1
Messages: 1365
Hors ligne
Sexe: 
May the Force be with you...
|
Ne chercher plus, je viens de trouver : La syntaxe à passer au calcul du CRC : "videodb://1/7/"+Sets.IdSet+"/" Fallait le trouver 
|
|
|
|
|
Journalisée
|
|
|
|
|
|
|