aMule Forum

Spanish => Nuevas funciones => Topic started by: darksidex on November 17, 2005, 03:55:18 PM

Title: Reanudar descargas en función del nombre
Post by: darksidex on November 17, 2005, 03:55:18 PM
Se que ahora amule reanuda las descargas en función de la prioridad, pero ¿no sería mejor hacerlo en función del nombre? ¿Sobre todo si se basa de reanudar la descargas de la misma categoría?

¿Que os parece?

PD Si os da pereza lo hago yo  :]
Title: Re: Reanudar descargas en función del nombre
Post by: Jacobo221 on November 17, 2005, 08:15:07 PM
tu mismo el patch :)

pero las prioridades estan para lo que estan. lo del nombre tendria que ser para cuando hay un empate de prioridades
Title: Re: Reanudar descargas en función del nombre
Post by: darksidex on November 18, 2005, 09:13:55 AM
Yo no lo veo así, tal vez porque uso la autoprioridad  :D

Pero si realmente quereis el patch, dime como (diff, la función entera directamente..) y a quién se lo paso.
Title: Re: Reanudar descargas en función del nombre
Post by: Kry on November 18, 2005, 01:45:45 PM
Eso ya esta hecho...
Title: Re: Reanudar descargas en función del nombre
Post by: darksidex on November 18, 2005, 02:13:13 PM
Quote
Originally posted by Kry
Eso ya esta hecho...

Solo por curiosidad, ¿en que parte? en "void CDownloadQueue::StartNextFile(CPartFile* oldfile);" no veo que se tiene en cuenta el nombre del fichero, solo la prioridad, y yo pensaba que esa era la función que se encargaba de reanudar las descargas.
Title: Re: Reanudar descargas en función del nombre
Post by: darksidex on November 20, 2005, 03:54:56 PM
Al final hago el parche o no?
Title: Re: Reanudar descargas en función del nombre
Post by: Kry on November 20, 2005, 10:50:28 PM
Hazlo. pero me hace raroq ue se haya perdido esa funcionalidad.
Title: Re: Reanudar descargas en función del nombre
Post by: darksidex on November 21, 2005, 11:23:59 AM
Esta es la función tal cual la tenéis ahora:

Code: [Select]
void CDownloadQueue::StartNextFile(CPartFile* oldfile)
{
if ( thePrefs::StartNextFile() ) {
CPartFile* tFile = NULL;

{
wxMutexLocker lock(m_mutex);

for ( uint16 i = 0; i < m_filelist.size(); i++ ) {
CPartFile* file = m_filelist[i];

if ( file->GetStatus() == PS_PAUSED ) {
if ( !tFile || file->GetDownPriority() > tFile->GetDownPriority() ) {
if (tFile && thePrefs::StartNextFileSame()) {
if (tFile->GetCategory() == oldfile->GetCategory()) {
// Already found a file for this category
if (file->GetCategory() == oldfile->GetCategory()) {
// But the new one is also for this category
if (file->GetDownPriority() > tFile->GetDownPriority()) {
// So, higher prio?
tFile = file;
} else {
; // Lower prio, ignore this file.
}
} else {
; // It's not from the same category, so nothing
}
} else {
// Found no file yet with the same category
if (file->GetDownPriority() > tFile->GetDownPriority()) {
// So, higher prio?
tFile = file;
} else {
; // Lower prio, ignore this file.
}
}
} else {
// There is no file found yet or no category selection.
tFile = file;
}

if ( tFile->GetDownPriority() == PR_HIGH ) {
if (thePrefs::StartNextFileSame()) {
// It's from the same category?
if (tFile->GetCategory() == oldfile->GetCategory()) {
// There can't be any higher
break;
} else {
; // Maybe we'll find another file from the same category
}
} else {
// There can't be any higher
break;
}
}
}
}
}
}

if ( tFile ) {
tFile->ResumeFile();
}
}
}

Solo tiene en cuenta las prioridades.

A ver si este finde me pongo y la hago, que no tengo mucho tiempo libre ultimamente.
Title: Re: Reanudar descargas en función del nombre
Post by: Kry on November 21, 2005, 11:44:29 AM
ok, gracias. Yo sigo emparanoyado con que lo HACIA, mas que nada porque habia añadido yo lo de las categorias y eso... por otra parte, normalmente no recuerdo ni lo que desayuno, asi que....

Tu monta el patch con las categorias, añana en preferencias un thePrefs::StartNextFileAlpha() equivalente al thePrefs::StartNextFileSame() pero para alfabetico, y yo me encargo de añadirlo al gui.
Title: Re: Reanudar descargas en función del nombre
Post by: darksidex on November 21, 2005, 11:54:49 AM
Ya me he perdido, ahora no se si tengo que hacer una función que tenga en cuenta SOLO los nombres, que es lo que te he entendido a ti, o que tenga también en cuenta las prioridades del archivo, que es lo que creo que quería jacobo.

A mi me da igual montar una o la otra, pero haced un pequeño consenso, y me decís, más que nada para que esté listo cuanto antes.
Title: Re: Reanudar descargas en función del nombre
Post by: Kry on November 21, 2005, 12:06:15 PM
Simplemente tienes que extender la funcionalidad actual para que DESPUES de comprobar las prioridades, a prioridades equivalentes compruebe el nombre. Pero opcionalmente, asi que "if (tFile && thePrefs::StartNextFileSame()) {" en el codigo, que es para elegir solo por categorias, deberia tener su equivalente, por ejemplo thePrefs::StartNextFileAlpha() para permitir elegir si queremos este comportamiento o no.


Por otra parte, puedes hacer que no sea opcional, y si me aburro ya lo pondre opcional yo mas tarde.
Title: Re: Reanudar descargas en función del nombre
Post by: darksidex on November 21, 2005, 12:44:02 PM
ok, el finde me pongo y os paso el código.
En que formato? supongo que diff, pero con que parámetros lo monto (nunca lo he usado :()
Title: Re: Reanudar descargas en función del nombre
Post by: Jacobo221 on November 21, 2005, 03:31:33 PM
diff -u

;)
Title: Re: Reanudar descargas en función del nombre
Post by: darksidex on November 26, 2005, 04:41:31 PM
Ya está :D

No lo he probado porque no he cambiado el tema de las preferencias para que soporte thePrefs::StartNextFileAlpha(), así que no podría compilar, pero he usado el mismo método que uso en el emule, o que usaba en amule cuando lo compilaba en FreeBSD, salvo por lo de StartNextFileAlpha().

En el tar.gz hay dos ficheros, el primer parche es para que tenga en cuenta el orden alfabético, da igual si debe estar en la misma categoría o no. En el segundo solo tiene en cuenta el orden alfabético si está en la misma categoría, así podeis implementar el tema de las preferencias como mejor os venga. En ambos casos tiene en cuenta la prioridad.