ONERADIOPLAYER

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 - 22 déc. 2008 à 16:45
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 - 29 déc. 2008 à 11:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48774-oneradioplayer

WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
29 déc. 2008 à 11:39
ok bro excuse moi :D

je disais que effectivement tu a raison wims pour ce que tu a dis que si il n'y a pas de commande on peut pas enlevé les accolades si non on aura un msg d'erreur

c'est pk j'ai mis dans mon exp "cmd" que ça s'applique rien qu'avec la presence d'une commande

j'espere etre bien clair cette fois ci :)
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
29 déc. 2008 à 11:19
?
Essaye de te relire quand tu postes un message :(
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
29 déc. 2008 à 10:36
effectivement wims c'est pk j'ai mis "cmd" :) si non pour un vide on aura un msg d'erreur :)
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
28 déc. 2008 à 17:27
$dll est mieux que /dll.
par contre le coup des vars sur $dll, autant utilisé .echo -q (ou /noop, mais pour resté compatible), tu auras ton echo plus simplement si tu veux check le retour :) (a noté aussi que tu peux utilisé var -s pour afficher le resultat.)

Et worldDMT, enlevé les {} ne marche que quand il n'y qu'une command derrière, ou alors quand ce qui précède la { n'est pas une condition et encore, il faut savoir ce que l'on fait.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
28 déc. 2008 à 12:06
ok je vois

bon a propos de l'alias OneRP.current je vois dans else

else {
if ($len($hget(OneRP,stream2)) == 0) {
}
hadd OneRP stream $remove(%a,$chr(40),$chr(41))
hadd OneRP stream2 $remove(%a,$chr(40),$chr(41))
}

ici la condition "if ($len($hget(OneRP,stream2)) == 0)" ça jou quel role?
puisque tu a une accolade fermé avant la cmd
si je ne me trompe pas si la condition est vraie ou fausse la commande hadd fontionnera tjr non?

au passage quand tu met dejà des "()" enleve les "{}" c'est plus rapide

exp:

if (x y) { cmd } tu peu faire if (x y) cmd

aussi pour

if ((x ==y) || (x == z)) { cmd }

=>

if (x ==y) || (x == z) { cmd }

ou

if ((x ==y) || (x == z)) cmd

c'est juste une proposition
Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008
28 déc. 2008 à 11:19
Salut,

tout d'abord merci pour ton commentaire

si tu regardes l'alias OneRP.current tu verra que je stocke des trucs dans la table, en l'occurence le tire en cours. Ca m'évite de stocker dans des variables. un hmake ne signifie pas qu'on utilise un hload derrière. et je préfère créer la htable avant. je trouve ca plus propre. Après c'est une question de façon de travailler.

oui je peux utiliser /dll mais mes variables ne sont pas tockées, elles sont juste utilisées dans l'alias. Regarde dans la section variable. Et j'ai pris k'habitude de faire ca au cas ou j'ai un problème de dll. j'ai juste à remplacer par un echo et je vois ce que me retroune la dll.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
27 déc. 2008 à 21:34
salut
j'ai regardé vite fais dejà on a commenté mais j'ai vu quelque ptites truc là

on 1:start:{
hmake OneRP 100
var %a $dll($OneRP.Amp,PluginManager,load input $shortfn($scriptdirplugins\in_vorbis.dll))
var %a $dll($OneRP.Amp,PluginManager,load input $shortfn($scriptdirplugins\in_mp3.dll))
var %a $dll($OneRP.Amp,PluginManager,load output $shortfn($scriptdirplugins\out_ds.dll))
}

pourquoi un hmake puisqu'il n'y a pas de hload?
tu peus enlevé et utilisé hadd -m le "-m" crée la hash table

pourquoi un tas de variable locale utilise /dll tout simplement

@+
PeGaZe33000 Messages postés 5 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 3 janvier 2009
25 déc. 2008 à 12:12
Merci, en effet, d'avoir sorti ce code :)
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
23 déc. 2008 à 15:10
Remplacer le goto par un return ne veut pas dire enlever le return initial.
Ton goto amène à une seule instruction : un return. Donc au lieu de laisser mIRC se débrouiller à chercher l'étiquette du goto, un return est, à mon avis, plus efficace, un break aussi.
Mais comme je l'ai dit, c'était juste histoire d'avoir un truc à dire sur la source ^^ (sinon j'ai rien trouvé d'autre à dire, à part peut-être le $numtok() recalculé à chaque passage de la boucle) mais bon, ça aurait été plus important si les tampons étaient manipulés en mIRC, or là c'est une dll qui s'en charge. Donc je répète que mes petits commentaires sont à prendre à la légère, sinon ça reste relativement bien codé, puis c'est sympa d'avoir ressorti ça pour aider quelqu'un.
Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008
23 déc. 2008 à 13:59
Dans ton code, si je ne rencontre jamais le caractère $chr(41), je boucle indéfiniment. alors que moi je scan toute ma chaine et je m'arrète à la fin. je retourne le nombre de caractère avant le chr(41) ou toute la longueur s'il n'y est pas.

Il doit y avoir moyen en effet d'utiliser les regex et d'optimiser le code. Mais ce n'était pas mon but efectivement.
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
23 déc. 2008 à 12:51
Non, le break ne fait qu'arrété la boucle, il ne sort pas de la routine en cours (le return lui stop la routine en cours DONC stop la boucle).
Mais Uaip a raison ton code est mal fichu, actuelement tu retourne %x - 1 dans nimporte quel cas (je sais pas si c'est voulu).
Mettre un break ou le même return (dans tout les cas il faut laissé le return de fin) et viré tes gotos reviendrai exactement au même que ton code actuel, mais on peut faire plus propre encore :

alias -l OneRP.testtitreradio {
var %a $remove($1-,$chr(32))
var %x 2
while ($right($gettok(%a,%x,40),1) != $chr(41)) inc %x 1
return $calc(%x - 1)
}

mais je pense pas que l'optimisation t'interesse vraiment ici, sinon... :)
En tout cas les regex font grandement defaut dans ton code.
Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008
23 déc. 2008 à 12:13
si tu met directement le break ou le return tu ne renvoie aucune valeur alors qu'ici je renvoie une valeur à la fin dans tous les cas
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
22 déc. 2008 à 22:04
Saloute
Même si on s'en fiche, on peut remplacer le goto par un break (dans la dernière boucle) ou même mettre directement le return.
C'est le seul "défaut" que j'ai trouvé à dire ^^
Sinon concernant cet éternel débat dll/mIRC c'est vrai que malgré l'augmentation de la qualité, ça enlève carrément du charme au codage mIRC (ce n'est en aucun cas une critique).
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
22 déc. 2008 à 20:57
Yep, c'est deja bien sympa d'avoir resortis ca vite fait.

j'ai moi meme essaye il fut un temps de lire les donnes en temps reel avec des tampons, et effectivement j'avais aussi des probleme de coupure, mais je me disais que c'est parce que je procedais mal.
Bestdoud Messages postés 243 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 28 décembre 2008
22 déc. 2008 à 17:21
en socket j'ai déja essayé et le résultat final est pas génial. on a des coupure à cause des tampons. A part faire un tampon énorme,j'ai pas trouvé.

Et ca se voit toute de suite que j'utilise des dlls à en regarder le contenu plus haut.

l'avantage c'est qu'on peut ausi écouter les radio en ogg.

ici j'ai pas trop recherché à faire un super truc. j'ai juste repris un ancien addon et laissé que le minimum. j'ai fait ca pour la personne que tu as conseillé de me contacter.

De plus j'ai plus trop le temps de coder. tous mes projets sont un peu laissé à l'abandon.

merci quand même pour ton commentaire
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
22 déc. 2008 à 16:45
En terme de coding, a chaque fois jme dis mais comment il fait, et comme je vois aucune socket, les dlls font tilt :(, et jme dis "ah oui, les dll remplaces les lignes de socket et toutes la methode de lecture qui va derrière" c'est un peu dommage :p

Je ne juge pas le code parce que c'est pas vraiment le but, mais on peut optimiser :)
Rejoignez-nous