PlaySound

Riproduce un file sonoro

bool  PlaySound(
   string  filename      // nome del file
   );

Parametri

filename

[in] Percorso del file audio. Se filename=NULL, il playback viene fermato.

Valore restituito

true - se il file viene trovato, in caso contrario - false.

Nota

Il file deve essere posizionato in terminal_directory\Sounds o la sua sub-directory. Solo i file WAV vengono riprodotti.

La chiamata di PlaySound() con il parametro NULL ferma il playback.

La funzione PlaySound() non funziona nel Tester di strategia.

Esempio:

#include <Trade\Trade.mqh>
#define MAGIC (123)
 
//-- parametri di input
input string          InpFileNameOK  = "ok.wav";               // successo con il file audio
input string          InpFileNameErr = "timeout.wav";          // errore con il file audio
input ENUM_ORDER_TYPE InpOrderType   = ORDER_TYPE_BUY_LIMIT;   // tipo di ordine
input double          InpLots        = 0.1;                    // lotti
 
//---variabili globali
CTrade ExtTrade;
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- imposta il numero magico e il tipo di ordine per esecuzione in base alle impostazioni del simbolo
   ExtTrade.SetExpertMagicNumber(MAGIC);
   ExtTrade.SetTypeFillingBySymbol(Symbol());
//-- chiamare la funzione di piazzamento di un ordine o apertura di una posizione con riproduzione audio
   OrderSendWithAudio();
  }
//+----------------------------------------------------------------------------+
//| La funzione effettua un ordine o apre una posizione                        |
//| e riproduce il suono di successo o di errore                               |
//+----------------------------------------------------------------------------+
void OrderSendWithAudio(void)
  {
   bool    res=true;
   MqlTick tick= {};
 
   ResetLastError();
   if(!SymbolInfoTick(Symbol(),tick))
     {
      Print("SymbolInfoTick() failed. Error code: ",GetLastError());
      PlaySound(InpFileNameErr);
      return;
     }
//-- invia una richiesta al server
   switch(InpOrderType)
     {
      case ORDER_TYPE_BUY :
         res=ExtTrade.Buy(InpLots);
         break;
      case ORDER_TYPE_BUY_LIMIT :
         res=ExtTrade.BuyLimit(InpLots,NormalizeDouble(tick.ask-100*Point(),Digits()));
         break;
      case ORDER_TYPE_BUY_STOP :
         res=ExtTrade.BuyStop(InpLots,NormalizeDouble(tick.ask+100*Point(),Digits()));
         break;
      case ORDER_TYPE_SELL :
         res=ExtTrade.Sell(InpLots);
         break;
      case ORDER_TYPE_SELL_LIMIT :
         res=ExtTrade.SellLimit(InpLots,NormalizeDouble(tick.bid+100*Point(),Digits()));
         break;
      case ORDER_TYPE_SELL_STOP :
         res=ExtTrade.SellStop(InpLots,NormalizeDouble(tick.bid-100*Point(),Digits()));
         break;
      default :
         res=false;
     }
   if(!res)
      Print("Error ",GetLastError());
   Print(ExtTrade.ResultRetcodeDescription());
 
//--- se la richiesta è accettata, riprodurre il suono ok.wav
   if(ExtTrade.ResultRetcode()==TRADE_RETCODE_DONE)
      PlaySound(InpFileNameOK);
   else
      PlaySound(InpFileNameErr);
  }

Vedi anche

Risorse