Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #10  
Antiguo 02-04-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Poder: 20
Guillermo80 Va por buen camino
me he perdido

Hola Al, lo siento pero creo que no te he entendido lo último que me decías:

Cita:
...habrás de crear, efectivamente, un procedimiento con el nombre que quieras (mientras no tenga conflicto con otros identificadores, claro está), siendo ese procedimiento de cabecera equivalente al tipo de dato FLAC__StreamEncoderProgressCallback que ya declaraste
Si ahora resulta que a Init_File le voy a pasar @MiFuncion:

1. ¿Cómo se relaciona con el tipo que me he creado FLAC__StreamEncoderProgressCallback? Quiero decir, que ahora tendría un tipo FLAC__StreamEncoderProgressCallback, una función @Mifunción, y sólo un parámetro para pasarle a Init_File.
2. Si utilizo como me dices como parámetro para init_File @MiFuncion, eso falla en compilación, porque le estaría pasando una direccion de memoria en vez de una variable declarada del tipo precisado. ¿Qué es lo que falla?

Aparte de todo lo anterior te explico un poco el contexto:

- El programa general consiste en comprimir audio sin pérdidas siguiendo las especificaciones del formato de audio FLAC.
- Para ello uso las funciones de libFlac.dll
- El programa en realidad "no me lo invento", en un principio se trata de hacer algo simple, para ello tomo un ejemplo de VisualC++ que comprime una pista de audio.
- La función de retrollamada es opcional, y si la cosa se pone fea, pues le paso un nil y se acabó.
- El punto del programa en el que se hace la retrollamada es el siguiente:

Cita:
init_status = FLAC__stream_encoder_init_file(encoder, argv[2], progress_callback, NULL);
Pongo textualmente la descripción del sistema que nos ocupa:

Cita:
* For encoding directly to a file, use FLAC__stream_encoder_init_FILE()
* or FLAC__stream_encoder_init_file(). Then you must only supply a
* filename or open \c FILE*; the encoder will handle all the callbacks
* internally. You may also supply a progress callback for periodic
* notification of the encoding progress.Initialize the encoder instance to * * encode native FLAC files.
...
...
* \param encoder An uninitialized encoder instance.
* \param file An open file. The file should have been opened
* with mode \c "w+b" and rewound. The file
* becomes owned by the encoder and should not be
* manipulated by the client while encoding.
* Unless \a file is \c stdout, it will be closed
* when FLAC__stream_encoder_finish() is called.
* Note however that a proper SEEKTABLE cannot be
* created when encoding to \c stdout since it is
* not seekable.
* \param progress_callback See FLAC__StreamEncoderProgressCallback. This
* pointer may be \c NULL if the callback is not
* desired.
* \param client_data This value will be supplied to callbacks in their
* \a client_data argument.
De aquí hay una cosa que no entiendo exactamente, cuando dice:

Cita:
...The file should have been opened with mode \c "w+b" and rewound.
¿En Delphi a qué equivaldría? Yo el fichero lo abro en modo lectura, aunque ahora dudo si debería estar en lectura/escritura por si codifica en el mismo fichero y no en otro...

Espero haber provisto de información suficiente mi trabajo.

Un saludo.

Guillermo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿puntero a puntero? Guillermo80 Varios 3 09-03-2008 22:46:32
puntero gaston260 API de Windows 11 01-02-2008 22:39:20
uso de función de dll cuyo parametro es un puntero (dirección) a una estructura abracadabra Varios 1 12-10-2007 16:43:59
pasar un puntero a una funcion baby Varios 2 21-05-2007 13:10:22
puntero a imagen Abaddon Gráficos 9 16-06-2005 00:17:29


La franja horaria es GMT +2. Ahora son las 19:47:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi