Wavefile playback

* Corrected fault when trying to playback a stereo wavefile
  * Leonardo is not yet a ham, but credits his interest to
    his grandfather, I5LAP
pull/2/head
Leonardo 2012-06-26 09:50:45 -05:00 zatwierdzone przez David Freese
rodzic 5425fb28c9
commit 0ddb867f81
2 zmienionych plików z 26 dodań i 5 usunięć

Wyświetl plik

@ -1608,7 +1608,23 @@ void cb_mnuPlayback(Fl_Widget *w, void *d)
return;
}
playval = m->value();
if(!scard->Playback(playval)) {
int err = scard->Playback(playval);
if(err < 0) {
switch (err) {
case -1:
fl_alert2(_("No file name given"));
break;
case -2:
fl_alert2(_("Unsupported format"));
break;
case -3:
fl_alert2(_("channels != 1"));
break;
default:
fl_alert2(_("unknown wave file error"));
}
m->clear();
playval = false;
}
@ -4442,7 +4458,7 @@ void create_fl_digi_main_primary() {
const char *label6a = _("# R");
const char *label7a = _("Ex");
const char *xData = "00000";
const char *xCall = "WW8WWW/WWWW";
const char *xCall = "WW8WWW";//"WW8WWW/WWWW";
int wData = static_cast<int>(fl_width(xData));
int wCall = static_cast<int>(fl_width(xCall));

Wyświetl plik

@ -186,16 +186,21 @@ int SoundBase::Playback(bool val)
int format;
get_file_params("playback.wav", &fname, &format);
if (!fname)
return 0;
return -1;
SF_INFO info = { 0, 0, 0, 0, 0, 0 };
if ((ifPlayback = sf_open(fname, SFM_READ, &info)) == NULL) {
LOG_ERROR("Could not read %s:%s", fname, sf_strerror(NULL) );
return 0;
return -2;
}
if (info.channels != 1) {
sf_close(ifPlayback);
return -3;
}
playback = true;
return 1;
return 0;
}
int SoundBase::Generate(bool val)