• Publicidad

Plantear solución en C

Todo lo relacionado con lenguajes de programación distintos de Perl: PHP, Java, C++, Ruby, Python, etc.

Plantear solución en C

Notapor gonzalos » 2013-05-20 03:13 @176

Hola.

Volvemos a la carga.

Tengo un problema: necesito comparar de una tabla dos tipos de ID. Uno con archivos de audio y otro con archivos de vídeo. Si el archivo es de audio entonces el de vídeo vale NULL, y viceversa.

Nos dan los siguientes datos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using c Syntax Highlighting
  1. typedef struct {
  2. tAudio  audio ;
  3. tVideo  video ;
  4. }tMedia ;
  5.  
  6. int CompareAudioMedia (const void * element1, const void* element2){
  7.  
  8. tAudio *audio1;
  9. tAudio *audio2;
  10. int res;
  11.  
  12. /*Get elements*/
  13. audio1=(tAudio)*audio1;
  14. audio2=(tAudio)*audio2;
  15. if (audio1->mediaID<audio2->mediaID){
  16.    res=-1;
  17. else if(audio1->mediaID==audio2->mediaID){
  18.    res=0;
  19. else
  20.    res=1;
  21. return res;
  22. }
  23.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Mi problema es que no sé cómo plantear la condición de que si el archivo es de audio, el de vídeo sea igual a NULL, y viceversa. Para luego compararlos y obtener el resultado.

Por si fuera necesario las definiciones de vídeo y audio son:
Sintáxis: [ Descargar ] [ Ocultar ]
Using c Syntax Highlighting
  1. typedef struct {
  2.         /* Unique Id for this media file */
  3.         unsigned int mediaID;
  4.         /* Number of frames */
  5.         unsigned int numFrames;
  6.         /* Frame rate */
  7.         unsigned int fps;
  8.         /* Frames of this video*/
  9.         tImage frames[MAX_FRAMES];
  10.         /* File source */
  11.         char url[51];
  12. } tVideo
  13.  
  14. typedef struct {
  15.         /* Unique Id for this media file */
  16.         unsigned int mediaID;
  17.         /* Number of samples */
  18.         unsigned int numSamples;
  19.         /* Audio samples */
  20.         float data[MAX_AUDIO_SAMPLES];
  21.         /* Audio frequency */
  22.         unsigned int freq;
  23.         /* File source */
  24.         char url[51];
  25. } tAudio
  26.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Alguna sugerencia? Porque a mí se me han acabado las ideas, antes de empezar :)

Un saludo
Gonzalo
gonzalos
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2009-11-27 05:47 @283

Publicidad

Re: Plantear solución en C

Notapor joelito » 2014-04-19 09:35 @441

La única forma, a mi manera de ver, es que tendrías que usar el atributo ID para identificar el objeto de vídeo o de audio, de lo contrario modificar la estructura para crear un atributo para el tipo de medio, pero la duda es que si quieres hacer uno NULL si uno es de audio y viceversa... ¿cuál de los dos harías NULL?
Sintáxis: [ Descargar ] [ Ocultar ]
Using c Syntax Highlighting
  1. int probador(const void* t1, const void* t2);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Si t1 fuera audio y t2 vídeo, ¿cuál se haría NULL?
Si t1 fuera vídeo y t2 audio, ¿cuál se haría NULL?
joelito
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2014-04-18 12:56 @580


Volver a Programación en general

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados