Newsgroup: it.comp.lang.c++
Titolo: formato GSM

Salve a tutti, io ho cominciato a scrivere uno di quei programmi che
convertono i file wave da un formato ad un altro.
Vorrei convertire un file da PCM a GSM.
Ho cominciato a scrivere cosě:
{
WAVEFORMATEX mariw,mariw1;
mariw.wFormatTag=WAV_FORMAT_PCM;
mariw.nChannels=2;
(consigliato dal borland c++ per il formato pcm)
mariw.nSamplesPerSec=44100;
mariw.wBitsPerSample=16;
mariw.nBlockAlign=4;
mariw.nAvgBytesPerSec=176400;
mariw.cbsize=0;
mariw1.wFormatTag=36;
mariw1.nChannels=2;
mariw1.nSamplesPerSec=44100;
mariw1.wBitsPerSample=16;                                  (ho messo il tag
GSM ma non sono sicuro
mariw1.nBlockAlign=4;                                                 del
resto.)
mariw1.nAvgBytesPerSec=176400;
mariw1.cbsize=0;
  acmStreamOpen(
     27,
     NULL,
     mariw,
     mariw1,
     NULL,
     0,
     0,
     ACM_STREAMOPENF_ASYNC
    );
acmStreamSize(
     27,
     DWORD cbInput,
     LPDWORD pdwOutputBytes,
     DWORD fdwSize
    );
Mi sono bloccato perché non ho capito dove il programma prende il wave
sorgente.
Non c'č un modo piů semplice per convertire formato wave?
Se mi sapete rispondere fatelo, grazie.
Mario.
--------------------------------------------------
Saluti  :-)
E-Mail: 
mar...@geocities.com
--------------------------------------------------

 --------------------------------------------------
Ciao. Mi chiamo Demis. Ho visto che bazzichi con i wave. Se li converti saprai
fare anche a suonarli. Mi daresti qualche dritta?Grazie
P.S. Posseggo Borland c++ 5.02 per windows, ma preferisco continuare ad usare
il caro vecchio 3.0 per Dos.

se guardi al sito 
www.soundblaster.com
 'č un esempio per il full duplex. lě
dentro ci trovi la gestione dei file WAV he stai cercando...č un po'
intricata, ma con un po' di pazienza ci si capisce abbastanza...comunque, ti
basta capire il funzionamento in linea di massima e poi fare un bel copia e
incolla!!! Spero ciň ti possa essere di aiuto.
Buon lavoro,
Massimiliano


Ciao, si li so far suonare :-)
Io uso la classe TMediaplayer di Borland C++ Builder.
Se non hai il C++ Builder non conosco so se i compilatori che hai hanno
qualche classe multimediale.
Cmq per andare sul sicuro usa l' API PlaySound().
Ti faccio il copia e incolla della sintassi.
Mi dispiace ma in DOS non ho mai utilizzato i WAVES.
The PlaySound function plays a sound specified by the given filename,
resource, or system event. (A system event may be associated with a sound in
the registry or in the WIN.INI file.)
BOOL PlaySound(
    LPCSTR pszSound,
    HMODULE hmod,
    DWORD fdwSound
   );
Parameters
pszSound
A string that specifies the sound to play. If this parameter is NULL, any
currently playing waveform sound is stopped. To stop a non-waveform sound,
specify SND_PURGE in the fdwSound parameter.
Three flags in fdwSound (SND_ALIAS, SND_FILENAME, and SND_RESOURCE)
determine whether the name is interpreted as an alias for a system event, a
filename, or a resource identifier. If none of these flags are specified,
PlaySound searches the registry or the WIN.INI file for an association with
the specified sound name. If an association is found, the sound event is
played. If no association is found in the registry, the name is interpreted
as a filename.
hmod
Handle of the executable file that contains the resource to be loaded. This
parameter must be NULL unless SND_RESOURCE is specified in fdwSound.
fdwSound
Flags for playing the sound. The following values are defined:
SND_APPLICATION
The sound is played using an application-specific association.
SND_ALIAS
The pszSound parameter is a system-event alias in the registry or the
WIN.INI file. Do not use with either SND_FILENAME or SND_RESOURCE.
SND_ALIAS_ID
The pszSound parameter is a predefined sound identifier.
SND_ASYNC
The sound is played asynchronously and PlaySound returns immediately after
beginning the sound. To terminate an asynchronously played waveform sound,
call PlaySound with pszSound set to NULL.
SND_FILENAME
The pszSound parameter is a filename.
SND_LOOP
The sound plays repeatedly until PlaySound is called again with the pszSound
parameter set to NULL. You must also specify the SND_ASYNC flag to indicate
an asynchronous sound event.
SND_MEMORY
A sound event's file is loaded in RAM. The parameter specified by pszSound
must point to an image of a sound in memory.
SND_NODEFAULT
No default sound event is used. If the sound cannot be found, PlaySound
returns silently without playing the default sound.
SND_NOSTOP
The specified sound event will yield to another sound event that is already
playing. If a sound cannot be played because the resource needed to generate
that sound is busy playing another sound, the function immediately returns
FALSE without playing the requested sound.
If this flag is not specified, PlaySound attempts to stop the currently
playing sound so that the device can be used to play the new sound.
SND_NOWAIT
If the driver is busy, return immediately without playing the sound.
SND_PURGE
Sounds are to be stopped for the calling task. If pszSound is not NULL, all
instances of the specified sound are stopped. If pszSound is NULL, all
sounds that are playing on behalf of the calling task are stopped.
You must also specify the instance handle to stop SND_RESOURCE events.
SND_RESOURCE
The pszSound parameter is a resource identifier; hmod must identify the
instance that contains the resource.
SND_SYNC
Synchronous playback of a sound event. PlaySound returns after the sound
event completes.