int main (void)
{
	FRESULT res;
	char *dir;
	BYTE org_osc = OSCCAL;


	MCUSR = 0;
	WDTCR = _BV(WDE) | 0b110;	/* Enable WDT reset in timeout of 1s */

	PORTB = 0b101001;		/* Initialize port: - - H L H L L P */
	DDRB  = 0b111110;

	sei();

	for (;;) {
		if (pf_mount(&Fs) == FR_OK) {	/* Initialize FS */
			wdt_reset();
			sendDiag(MOUNT_OK);
			Buff[0] = 0;
			if (!pf_open("osccal")) pf_read(Buff, 1, &rb);	/* Adjust frequency */
			OSCCAL = org_osc + Buff[0];

			res = pf_opendir(&Dir, dir = "wav");	/* Open sound file directory */
			if (res == FR_NO_PATH){
				res = pf_opendir(&Dir, dir = "");	/* Open root directory */
				sendDiag(OPEN_ROOT_DIR);
			}
			else{
				sendDiag(OPEN_WAV_DIR);
			}

			while (res == FR_OK) {				/* Repeat in the dir */
				res = pf_readdir(&Dir, 0);			/* Rewind dir */
				while (res == FR_OK) {				/* Play all wav files in the dir */
					wdt_reset();
					res = pf_readdir(&Dir, &Fno);		/* Get a dir entry */
					if (res || !Fno.fname[0]){
						if(res) sendDiag(DIR_ERROR);
						else sendDiag(END_OF_DIR);
						break;
					}	/* Break on error or end of dir */
					if (!(Fno.fattrib & (AM_DIR|AM_HID)) && strstr(Fno.fname, ".WAV")){
						sendFilename(Fno.fname);
						wdt_reset();
						sendDiag(PLAY_SONG);
						res = play(dir, Fno.fname);		/* Play file */
					}
					sendDiag(FINISH);
				}
			}
		}
		else{
			sendDiag(MOUNT_FAIL);
		}
		delay500();
	}
}
int
searchServerInfo(char* progName, char* serverAddress, char*  serverPort)
{




    /* Nom du fichier demandé */
    char* filename;

    /* Déclaration de la liste chainée contenant les noms des fichiers disponibles*/
    list ma_liste = NULL;



    /* Set connection with server */
    sockcli = sockConnect(serverAddress, serverPort);



    /* Get list of available files from server */
    ma_liste = getFilenameList(sockcli);


    /* Boucle infinie */
    while (true) {

        /* Print list of available files */
        printf("\n\n	 Fichiers disponibles\n\n");
        print_list(ma_liste);
        printf("\n");


        /* Select one file from the list */
        filename = menu_choice(ma_liste);


        /* Send the requested file to the server. */
        sendFilename(filename);


        /* Receive the file content from the server. */
        getFileContent(progName, filename, sockcli);

    }

    printf("\n[%ld] Fermeture de la socket.\n\n \n", (long int) getpid());
    close(sockcli);

    return EXIT_SUCCESS;
}