Pages: [1]   Bas de page
  Répondre  |  Envoyer ce fil  |  Imprimer  
Auteur Fil de discussion: Cherche connaisseur du code XBMC  (Lu 529 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Fait partie du Décor
*
Karma: 1
Messages: 1365
Hors ligne Hors ligne
Sexe: Homme
May the Force be with you...
Voir le profil WWW
« le: 31 Décembre 2009 11:15:39 »
Quote (selected)

Bonjour,
J'ai posé la question sur xbmc.org, mais personne n'arrive à me répondre, peut-être mon anglais très imparfait  smiley
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 :
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 ] arrows_right [ code=c ]
« Dernière édition: 04 Janvier 2010 17:46:06 par Frost » Journalisée

Il y a 10 sortes de gens, ceux qui savent compter en binaire et ceux qui ont des amis.
XBNE : XBMC Nfo Editeur
Fait partie du Décor
*
Karma: 1
Messages: 1365
Hors ligne Hors ligne
Sexe: Homme
May the Force be with you...
Voir le profil WWW
« Répondre #1 le: 04 Janvier 2010 16:51:21 »
Quote (selected) Haut de page

Personne ne connais le C sur ce forum ??  sad
Quelques indication me suffirais, par exemple le format retourné par cette ligne
Code:
strDir.Format("%ld/", m_pDS->fv("sets.idSet").get_asInt())
Journalisée

Il y a 10 sortes de gens, ceux qui savent compter en binaire et ceux qui ont des amis.
XBNE : XBMC Nfo Editeur
Fait partie du Décor
*
Karma: 6
Messages: 14187
Hors ligne Hors ligne
Sexe: Homme
Le PHP ?? C'est quoi ????
Voir le profil WWW
« Répondre #2 le: 04 Janvier 2010 16:52:43 »
Quote (selected) Haut de page

Envoie un Mp à Temhil, ce sujet lui aura peut être échappé.
Journalisée


Comment récupérer les logs et décrire un problème avec un script/plugin
AppleTV + Carte accélératrice Crystal HD / Xbox Débug Kit.
Made in Québec
Fait partie du Décor
*
Karma: 3
Messages: 2045
Hors ligne Hors ligne
Sexe: Homme
RISE
Voir le profil WWW
« Répondre #3 le: 04 Janvier 2010 17:22:30 »
Quote (selected) Haut de page

dsl mais connait rien en C  sad

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

Code
(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 ! embarrassed
Journalisée

Vous ne comprenez rien au jargon de Frost!
Voici l'outil ultime pour vous: Dictionnaire de la langue québécoise




Fait partie du Décor
*
Karma: 6
Messages: 14187
Hors ligne Hors ligne
Sexe: Homme
Le PHP ?? C'est quoi ????
Voir le profil WWW
« Répondre #4 le: 04 Janvier 2010 17:28:36 »
Quote (selected) Haut de page

Pour Temhil, je sais qu'il connait quelque chose en C mais C++ , C -- , C plus ou moins?  je sais plus.
Journalisée


Comment récupérer les logs et décrire un problème avec un script/plugin
AppleTV + Carte accélératrice Crystal HD / Xbox Débug Kit.
Colocataire
*
Karma: 0
Messages: 260
Hors ligne Hors ligne
Sexe: Homme
Voir le profil
« Répondre #5 le: 04 Janvier 2010 17:32:47 »
Quote (selected) Haut de page

...
Code:
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
« Répondre #6 le: 04 Janvier 2010 17:41:06 »
Quote (selected) Haut de page

heu bah %ld/ ca prends un long et ca te l'affiche http://www.cplusplus.com/reference/clibrary/cstdio/printf/

donc si ton id de set c 'est 1 a priori ca te sort 1/

Journalisée
Tolriq
« Répondre #7 le: 04 Janvier 2010 17:41:42 »
Quote (selected) Haut de page

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 Hors ligne
Sexe: Homme
May the Force be with you...
Voir le profil WWW
« Répondre #8 le: 04 Janvier 2010 17:49:02 »
Quote (selected) Haut de page

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

Il y a 10 sortes de gens, ceux qui savent compter en binaire et ceux qui ont des amis.
XBNE : XBMC Nfo Editeur
Développé Couché
Fait partie du Décor
*
Karma: 0
Messages: 2511
En ligne En ligne
Sexe: Homme
Developpeur Python petit scarabée
Voir le profil
« Répondre #9 le: 04 Janvier 2010 20:58:16 »
Quote (selected) Haut de page

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.
 arrows_right Le %ld comme mes petits camarades  niark niark 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.
 arrows_right 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 Hors ligne
Sexe: Homme
May the Force be with you...
Voir le profil WWW
« Répondre #10 le: 05 Janvier 2010 11:38:42 »
Quote (selected) Haut de page

Bonjour et merci de t'être penché sur mon probléme.
Le source est ICI
Ce 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 ICI
Pour 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

Il y a 10 sortes de gens, ceux qui savent compter en binaire et ceux qui ont des amis.
XBNE : XBMC Nfo Editeur
Tolriq
« Répondre #11 le: 05 Janvier 2010 12:43:07 »
Quote (selected) Haut de page

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 Hors ligne
Sexe: Homme
May the Force be with you...
Voir le profil WWW
« Répondre #12 le: 05 Janvier 2010 13:30:38 »
Quote (selected) Haut de page

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

Il y a 10 sortes de gens, ceux qui savent compter en binaire et ceux qui ont des amis.
XBNE : XBMC Nfo Editeur
Fait partie du Décor
*
Karma: 1
Messages: 1365
Hors ligne Hors ligne
Sexe: Homme
May the Force be with you...
Voir le profil WWW
« Répondre #13 le: 05 Janvier 2010 13:53:38 »
Quote (selected) Haut de page

Ne chercher plus, je viens de trouver :
La syntaxe à passer au calcul du CRC :

"videodb://1/7/"+Sets.IdSet+"/"

Fallait le trouver  sweat
Journalisée

Il y a 10 sortes de gens, ceux qui savent compter en binaire et ceux qui ont des amis.
XBNE : XBMC Nfo Editeur
Pages: [1]   Haut de page
  Répondre  |  Envoyer ce fil  |  Imprimer  
 
Aller à:  

+ Réponse Rapide
Dans la Réponse Rapide vous pouvez utiliser du BBCode et des émoticônes comme sur un message normal, mais à partir d'une interface beaucoup plus simple et dépouillée.