<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>7 May 2019 09:21:34 Z</lastBuildDate><pubDate>7 May 2019 09:21:34 Z</pubDate><description>Bonjour&#13;
&#13;
Je dois écrire en windev une fonction de compression alaw pour des fichiers wav.&#13;
&#13;
Je n'ai absolument aucune notion dans ce domaine. J'ai un exemple de code en c mais cela ne m'avance pas...&#13;
Merci de votre aide&#13;
Cordialement&#13;
&#13;
&#13;
Programmation dans la flash SPI&#13;
&#13;
	// Flash SPI Alaw&#13;
	case FLASH_SPI_1_ALAW:&#13;
		for (ii=0;ii&lt;size/2;ii++)&#13;
		{&#13;
			val_compress = I2S_Compression_Alaw(Tab_PC[(ii*2)+9]*0x100 + Tab_PC[(ii*2)+8]) ;&#13;
			SSP0_Write(adr,val_compress) ;&#13;
			adr ++ ;&#13;
		}&#13;
		break;&#13;
&#13;
/*****************************************************************************&#13;
** Function name:		I2S_Compression_Alaw&#13;
** Mot d'entrée sur 15 bits + 1 de signe&#13;
** Octet de sortie sur 7 bits + 1 de signe, sans le XOR de 0x55 habituel&#13;
****************************************************************************/&#13;
signed char I2S_Compression_Alaw( signed short Lineaire )&#13;
{&#13;
	signed char	Sortie ;&#13;
	unsigned char ii, Index ;&#13;
&#13;
	Sortie = 0 ;&#13;
	if (Lineaire &lt; 0)&#13;
		Lineaire = 0 - Lineaire ;&#13;
	else&#13;
		Sortie = 1 ;&#13;
	Lineaire = Lineaire &gt;&gt; 1 ;&#13;
&#13;
	Index = 0 ;&#13;
	for(ii=0;ii&lt;7;ii++)	// Recherche par dichotomie de la valeur la plus proche dans la table de compression&#13;
	{&#13;
		if (Lineaire &gt;= Tab_Alaw_Decomp[Index + (1 &lt;&lt; (6 - ii))])&#13;
			Index += (1 &lt;&lt; (6 - ii)) ;&#13;
	}&#13;
&#13;
	if (Sortie == 1)&#13;
		return(Index) ;&#13;
	else&#13;
		return(0 - Index) ;&#13;
}&#13;
&#13;
&#13;
const unsigned short	Tab_Alaw_Decomp[128] = {					&#13;
0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120,&#13;
128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248,&#13;
256, 267, 279, 292, 304, 318, 332, 347, 362, 378, 395, 412, 431, 450, 470, 490,&#13;
512, 535, 558, 583, 609, 636, 664, 693, 724, 756, 790, 825, 861, 899, 939, 981,&#13;
1024, 1070, 1117, 1166, 1218, 1272, 1328, 1387, 1448, 1513, 1579, 1649, 1722, 1799, 1878, 1961,&#13;
2048, 2139, 2233, 2333, 2435, 2544, 2656, 2774, 2896, 3025, 3158, 3299, 3444, 3597, 3756, 3923,&#13;
4096, 4278, 4467, 4665, 4871, 5087, 5312, 5548, 5793, 6050, 6317, 6598, 6889, 6889, 7512, 7846,&#13;
8192, 8556, 8933, 9330, 9742, 10175, 10624, 11096, 11585, 12100, 12634, 13195, 13777, 14389, 15024, 15692} ;</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/229950-compression-alaw/read.awp</link><title>Compression alaw</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster></channel></rss>
