1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-28 01:06:17 +00:00

update to 1.20

PR:		12624
Submitted by:	Jason Brazile <jason.brazile@netcetera.ch>
This commit is contained in:
Michael Haro 2000-02-14 21:03:05 +00:00
parent 5e4c8301a8
commit 8dac833ab2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=25823
13 changed files with 214 additions and 997 deletions

View File

@ -1,15 +1,15 @@
# New ports collection makefile for: mxv
# Version required: 1.10
# Version required: 1.20
# Date created: 17 March 1997
# Whom: davidn@blaze.net.au
#
# $FreeBSD$
#
DISTNAME= mxv-v1.10-source
PKGNAME= mxv-1.10
DISTNAME= mxv-v1.20-source
PKGNAME= mxv-1.20
CATEGORIES= audio
MASTER_SITES= ftp://ftp.funet.fi/pub/sci/audio/mxv/
MASTER_SITES= ftp://ftp.create.ucsb.edu/pub/MixViews/source/
MAINTAINER= davidn@blaze.net.au

View File

@ -1,2 +1 @@
MD5 (mxv-v1.10-source.tar.gz) = 77096555999e83008146f0f2e19eec14
#MD5 (mxv-v1.10-patch01) = 2fee3ffc776103a72817676564880a74
MD5 (mxv-v1.20-source.tar.gz) = 742a7d49d5754853ab9dcacfae91c633

View File

@ -1,801 +1,42 @@
*** old/Imakefile Thu Apr 9 19:57:34 1998
--- Imakefile Mon Jul 12 15:28:20 1999
***************
Sun Aug 25 10:17:47 PDT 1996
***************
diff -c -r old/channelview.C ./channelview.C
*** old/channelview.C Mon Aug 14 14:42:15 1995
--- ./channelview.C Sun Jul 14 20:31:15 1996
***************
*** 323,331 ****
framesVisible.set(point - margin, point + margin);
setVisibleFrameRange(framesVisible);
}
! if(!chansVisible.includes(chansToSelect) && scroll == true) {
! Range displayChans = chansToSelect;
! displayChans.expandBy(1);
setChannelRange(displayChans);
}
struct InsertSetter : public ChannelRangeBlock {
--- 323,344 ----
framesVisible.set(point - margin, point + margin);
setVisibleFrameRange(framesVisible);
}
! if(scroll && !chansVisible.includes(chansToSelect)) {
! Range displayChans;
! if(chansVisible.spread() >= chansToSelect.spread()) {
! // keep same number of visible channels, but shift up
! displayChans = chansVisible;
! int shift = chansToSelect.intMax() -
! chansVisible.intMax();
! displayChans += shift;
! // make sure range is non-negative
! while(displayChans.includes(-1)) displayChans += 1;
! }
! else {
! // use requested channels plus one on each side
! displayChans = chansToSelect;
! displayChans.expandBy(1);
! }
setChannelRange(displayChans);
}
struct InsertSetter : public ChannelRangeBlock {
diff -c -r old/dataview.C ./dataview.C
*** old/dataview.C Mon Aug 14 14:42:16 1995
--- ./dataview.C Sat Jul 13 22:43:40 1996
***************
*** 434,439 ****
--- 434,441 ----
DataView::addGraph(Graph *graph) {
if(graphsShown == maxGraphs)
expandGraphArray();
+ if(graphsShown == maxGraphs)
+ return; // failed to expand!
graphs[graphsShown] = graph; // add to array
Scale *vscale = new VScale(
graph->verticalScaleLabel(),
***************
*** 452,465 ****
DataView::expandGraphArray() {
int newMax = maxGraphs + 4;
Graph **newGraphs = new Graph *[newMax + 1]; // plus 1 for EOA
! int i;
! for(i=0; i < maxGraphs; i++)
! newGraphs[i] = graphs[i]; // copy existing graphs if any
! for(i = maxGraphs; i <= newMax; i++)
! newGraphs[i] = nil;
! delete [] graphs;
! graphs = newGraphs;
! maxGraphs = newMax;
}
*** 132,137 ****
--- 132,154 ----
ARCH_OBJS = utils.o
#endif
// remove one graph and its associated scale from frame
--- 454,469 ----
DataView::expandGraphArray() {
int newMax = maxGraphs + 4;
Graph **newGraphs = new Graph *[newMax + 1]; // plus 1 for EOA
! if(newGraphs) {
! int i;
! for(i=0; i < maxGraphs; i++)
! newGraphs[i] = graphs[i]; // copy existing graphs if any
! for(i = maxGraphs; i <= newMax; i++)
! newGraphs[i] = nil;
! delete [] graphs;
! graphs = newGraphs;
! maxGraphs = newMax;
! }
}
// remove one graph and its associated scale from frame
diff -c -r old/edit_menus.C ./edit_menus.C
*** old/edit_menus.C Sun Mar 24 19:14:18 1996
--- ./edit_menus.C Sun Jul 14 20:37:12 1996
***************
*** 61,68 ****
{ "Channel Display", "", 0L, false, channelSubmenu },
{ "display copy buffer", "I", XK_I },
{ "close current view", "W", XK_W },
- { "show program version", " ", XK_yen },
- { "quit program", "Q", XK_Q },
{ nil }
};
--- 61,66 ----
***************
*** 86,91 ****
--- 84,91 ----
{ "change file comment...", "\"", XK_quotedbl },
{ "file information...", "?", XK_question },
{ "data dump of selection...", "}", XK_braceright },
+ { "show program version", " ", XK_yen },
+ { "quit program", "Q", XK_Q },
{ nil }
};
***************
*** 124,129 ****
--- 124,137 ----
{ nil }
};
+ static MenuInfo analysisMenu[] = {
+ { "locate next zero crossing", "0", XK_0 },
+ { "find slope change", "1", XK_1 },
+ { "show maxamp sample location","2", XK_2 },
+ { "extract amplitude envelope", "3", XK_3 },
+ { nil }
+ };
+
static MenuInfo styleSubmenu[] = {
{ "line", "%", XK_percent },
{ "bar", "^", XK_asciicircum },
***************
*** 241,262 ****
// And now the structs containing the various menu templates
static MenuBarInfo defaultChannelMenuBar[] = {
- { " View ", viewMenu },
{ " File ", fileMenu },
{ " Edit ", editMenu },
! { " Display ", channelDisplayMenu },
{ nil }
};
static MenuBarInfo soundMenuBar[] = {
- { " View ", viewMenu },
{ " File ", fileMenu },
{ " Edit ", editMenu },
! { " Modify ", soundModifyMenu },
! { " Sound ", soundSpecialMenu },
! { " Analysis ", soundAnalysisMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
--- 249,271 ----
// And now the structs containing the various menu templates
static MenuBarInfo defaultChannelMenuBar[] = {
{ " File ", fileMenu },
+ { " View ", viewMenu },
{ " Edit ", editMenu },
! { " Analysis ", analysisMenu },
! { " Display ", channelDisplayMenu },
{ nil }
};
static MenuBarInfo soundMenuBar[] = {
{ " File ", fileMenu },
+ { " View ", viewMenu },
{ " Edit ", editMenu },
! { " Modify ", soundModifyMenu },
! { " Sound ", soundSpecialMenu },
! { " Analysis ", soundAnalysisMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
***************
*** 273,285 ****
};
static MenuBarInfo lpcMenuBar[] = {
- { " View ", viewMenu },
{ " File ", fileMenu },
{ " Edit ", editMenu },
! { " Modify ", modifyMenu },
{ " LPC ", lpcSpecialMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
--- 282,295 ----
};
static MenuBarInfo lpcMenuBar[] = {
{ " File ", fileMenu },
+ { " View ", viewMenu },
{ " Edit ", editMenu },
! { " Modify ", modifyMenu },
{ " LPC ", lpcSpecialMenu },
! { " Analysis ", analysisMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
***************
*** 293,305 ****
};
static MenuBarInfo envelopeMenuBar[] = {
- { " View ", viewMenu },
{ " File ", fileMenu },
{ " Edit ", editMenu },
! { " Modify ", modifyMenu },
! { " Envelope ", envelopeSpecialMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
--- 303,316 ----
};
static MenuBarInfo envelopeMenuBar[] = {
{ " File ", fileMenu },
+ { " View ", viewMenu },
{ " Edit ", editMenu },
! { " Modify ", modifyMenu },
! { " Envelope ", envelopeSpecialMenu },
! { " Analysis ", analysisMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
***************
*** 310,322 ****
};
static MenuBarInfo pitchMenuBar[] = {
- { " View ", viewMenu },
{ " File ", fileMenu },
{ " Edit ", editMenu },
! { " Modify ", modifyMenu },
! { " Pitch ", pitchSpecialMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
--- 321,334 ----
};
static MenuBarInfo pitchMenuBar[] = {
{ " File ", fileMenu },
+ { " View ", viewMenu },
{ " Edit ", editMenu },
! { " Modify ", modifyMenu },
! { " Pitch ", pitchSpecialMenu },
! { " Analysis ", analysisMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
***************
*** 339,354 ****
};
static MenuBarInfo defaultFrameMenuBar[] = {
- { " View ", viewMenu },
{ " File ", fileMenu },
! { " Display ", frameDisplayMenu },
{ nil }
};
static MenuInfo pvocSpecialMenu[] = {
! { "harmonically shift spectrum", "0", XK_0 },
! { "stretch/shrink shift spectrum", "1", XK_1 },
! { "expand/compress spectrum", "2", XK_2, Inactive },
{ "change file length...", "l", XK_l },
{ "pvoc options...", " ", XK_degree, Inactive },
{ nil }
--- 351,366 ----
};
static MenuBarInfo defaultFrameMenuBar[] = {
{ " File ", fileMenu },
! { " View ", viewMenu },
! { " Display ", frameDisplayMenu },
{ nil }
};
static MenuInfo pvocSpecialMenu[] = {
! { "harmonically shift spectrum", "t", XK_t },
! { "stretch/shrink shift spectrum", "T", XK_T },
! { "expand/compress spectrum", "X", XK_X, Inactive },
{ "change file length...", "l", XK_l },
{ "pvoc options...", " ", XK_degree, Inactive },
{ nil }
***************
*** 355,367 ****
};
static MenuBarInfo pvocMenuBar[] = {
- { " View ", viewMenu },
{ " File ", fileMenu },
{ " Edit ", editMenu },
! { " Modify ", modifyMenu },
{ " PVoc ", pvocSpecialMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
--- 367,380 ----
};
static MenuBarInfo pvocMenuBar[] = {
{ " File ", fileMenu },
+ { " View ", viewMenu },
{ " Edit ", editMenu },
! { " Modify ", modifyMenu },
{ " PVoc ", pvocSpecialMenu },
! { " Analysis ", analysisMenu },
! { " Display ", channelDisplayMenu },
! { " Options ", optionsMenu },
{ nil }
};
diff -c -r old/editor.C ./editor.C
*** old/editor.C Sat May 11 21:38:27 1996
--- ./editor.C Sat Jul 13 15:38:38 1996
***************
*** 861,867 ****
int peakchan, peakloc;
data->maxValue(&peakchan, &peakloc);
Range chan(peakchan, peakchan);
! controller->showInsertPoint(peakloc, chan);
return Succeed;
}
--- 861,867 ----
int peakchan, peakloc;
data->maxValue(&peakchan, &peakloc);
Range chan(peakchan, peakchan);
! controller->showInsertPoint(peakloc, chan, true);
return Succeed;
}
***************
*** 1001,1007 ****
PulseGenerator pgen(pulses, pulseFrameSize/pulsePerFrame);
pgen.apply();
FormantFilter filter(pulses, pulses, selected, 1.0);
! filter.apply();
Envelope* amplitudes = new Envelope(lpcLen * pulsePerFrame);
amplitudes->setFrameRangeLabel("LPC Analysis Frames");
amplitudes->setRangeFactor(1.0/pulsePerFrame);
--- 1001,1008 ----
PulseGenerator pgen(pulses, pulseFrameSize/pulsePerFrame);
pgen.apply();
FormantFilter filter(pulses, pulses, selected, 1.0);
! if(!filter.apply())
! return Fail;
Envelope* amplitudes = new Envelope(lpcLen * pulsePerFrame);
amplitudes->setFrameRangeLabel("LPC Analysis Frames");
amplitudes->setRangeFactor(1.0/pulsePerFrame);
***************
*** 1026,1032 ****
Application::inform("Creating test pattern...");
pgen.apply();
FormantFilter filter(pulses, pulses, selected, 1.0);
! filter.apply();
Application::inform("Analyzing formants...");
// fft size depends on npoles
FFT_Function analyzer(
--- 1027,1034 ----
Application::inform("Creating test pattern...");
pgen.apply();
FormantFilter filter(pulses, pulses, selected, 1.0);
! if(!filter.apply())
! return Fail;
Application::inform("Analyzing formants...");
// fft size depends on npoles
FFT_Function analyzer(
diff -c -r old/filecommand.C ./filecommand.C
*** old/filecommand.C Sun Mar 10 13:35:00 1996
--- ./filecommand.C Mon Aug 5 23:45:29 1996
***************
*** 132,138 ****
request->appendValue("Duration (seconds):", &client->duration,
PositiveIntegers);
request->appendValue("Sample rate:", &client->sampleRate, PositiveIntegers);
! request->appendChoice("Channels:", "|1|2|4|", &client->channels, true);
FormatRequester::configureRequest(request);
}
--- 132,138 ----
request->appendValue("Duration (seconds):", &client->duration,
PositiveIntegers);
request->appendValue("Sample rate:", &client->sampleRate, PositiveIntegers);
! request->appendValue("Channels:", &client->channels, PositiveIntegers);
FormatRequester::configureRequest(request);
}
diff -c -r old/header.h ./header.h
*** old/header.h Tue Mar 5 09:53:28 1996
--- ./header.h Mon Aug 5 23:43:58 1996
***************
*** 110,116 ****
int data_offset;
int data_size;
unsigned short data_type;
! unsigned short nchans;
Comment *comment;
private:
boolean forceSwapped; // used to override header default during raw read
--- 110,116 ----
int data_offset;
int data_size;
unsigned short data_type;
! int nchans;
Comment *comment;
private:
boolean forceSwapped; // used to override header default during raw read
diff -c -r old/header_config.C ./header_config.C
*** old/header_config.C Sat Jun 8 14:49:21 1996
--- ./header_config.C Mon Aug 5 23:42:51 1996
***************
*** 94,102 ****
void
SoundHeader::SoundConfigRequester::configureRequest(Request* request) {
SoundHeader* sh = (SoundHeader *) myHeader;
! request->appendValue("Sample rate:", &sh->samprate,
! PositiveIntegers);
! request->appendChoice("Channels:", "|1|2|4|", &sh->nchans, true);
FormatRequester::configureRequest(request);
ConfigRequester::configureRequest(request);
}
--- 94,101 ----
void
SoundHeader::SoundConfigRequester::configureRequest(Request* request) {
SoundHeader* sh = (SoundHeader *) myHeader;
! request->appendValue("Sample rate:", &sh->samprate, PositiveIntegers);
! request->appendValue("Channels:", &sh->nchans, PositiveIntegers);
FormatRequester::configureRequest(request);
ConfigRequester::configureRequest(request);
}
diff -c -r old/pvoceditor.C ./pvoceditor.C
*** old/pvoceditor.C Sun Mar 24 19:14:47 1996
--- ./pvoceditor.C Sat Jul 13 15:00:58 1996
***************
*** 40,49 ****
PvocEditor::keyCommand(unsigned long sym) {
boolean interested = true;
switch (sym) {
! case XK_0:
harmonicShift();
break;
! case XK_1:
stretchShift();
break;
default:
--- 40,49 ----
PvocEditor::keyCommand(unsigned long sym) {
boolean interested = true;
switch (sym) {
! case XK_t:
harmonicShift();
break;
! case XK_T:
stretchShift();
break;
default:
diff -c -r old/soundheader.C ./soundheader.C
*** old/soundheader.C Tue Apr 30 20:29:59 1996
--- ./soundheader.C Mon Aug 5 23:05:47 1996
***************
*** 122,129 ****
char msg[64];
msg[0] = '\0'; // null for later check
int retcode = 0;
! if(nchans != 1 && nchans != 2 && nchans != 4)
! sprintf(msg, "%d-channel sounds not supported", nchans);
else if(samprate < 1000 || samprate > 128000)
sprintf(msg, "Invalid sound samp rate (%d)", samprate);
else if(data_type == NoData)
--- 122,130 ----
char msg[64];
msg[0] = '\0'; // null for later check
int retcode = 0;
! if(!isRaw() && !validChannels(nchans))
! sprintf(msg, "Illegal channel count for this header type: %d",
! nchans);
else if(samprate < 1000 || samprate > 128000)
sprintf(msg, "Invalid sound samp rate (%d)", samprate);
else if(data_type == NoData)
diff -c -r old/soundheader.h ./soundheader.h
*** old/soundheader.h Tue Apr 30 20:29:11 1996
--- ./soundheader.h Mon Aug 5 23:02:26 1996
***************
*** 71,76 ****
--- 71,77 ----
redefined int secondsToBytes(double);
redefined int checkHeader();
virtual boolean isValid(DataType)=0;
+ virtual boolean validChannels(int chans) { return chans > 0; }
SoundHeader(DataType, int rate, int chans, double peak, int magic);
class SoundConfigRequester
: public Header::ConfigRequester, public FormatRequester {
***************
*** 198,203 ****
--- 199,207 ----
redefined boolean isMagic();
redefined boolean isValid(DataType t) {
return (t == ShortData || t == FloatData);
+ }
+ redefined boolean validChannels(int chans) {
+ return chans == 1 || chans == 2 || chans == 4;
}
redefined int writeInfo(DataFile *);
};
diff -c -r old/version.C ./version.C
*** old/version.C Fri Dec 22 23:22:26 1995
--- ./version.C Sun Aug 25 10:17:39 1996
***************
*** 24,27 ****
#include "version.h"
! const char MXV_version_string[] = "MiXViews (mxv) version 1.1 pl 00";
--- 24,27 ----
#include "version.h"
! const char MXV_version_string[] = "MiXViews (mxv) version 1.1 pl 01";
diff -c -r old/viewchanger.C ./viewchanger.C
*** old/viewchanger.C Tue Mar 19 21:26:41 1996
--- ./viewchanger.C Sat Jul 13 23:23:15 1996
***************
*** 41,48 ****
class MinMaxRequester : public TitledRequester {
public:
MinMaxRequester(const char* title,
! const char* minlabel, T& minval, const Range &,
! const char* maxlabel, T& maxval, const Range &);
protected:
redefined void configureRequest(Request *);
protected:
--- 41,48 ----
class MinMaxRequester : public TitledRequester {
public:
MinMaxRequester(const char* title,
! const char* minlabel, T& minval, const Range,
! const char* maxlabel, T& maxval, const Range);
protected:
redefined void configureRequest(Request *);
protected:
***************
*** 50,63 ****
const char* maxLabel;
T &minVal;
T &maxVal;
! const Range &minRange;
! const Range &maxRange;
};
template <class T>
MinMaxRequester<T>::MinMaxRequester(const char* title,
! const char* minlabel, T& minval, const Range& minrange,
! const char* maxlabel, T& maxval, const Range& maxrange)
: TitledRequester(title), minLabel(minlabel), maxLabel(maxlabel),
minVal(minval), maxVal(maxval),
minRange(minrange), maxRange(maxrange) {}
--- 50,63 ----
const char* maxLabel;
T &minVal;
T &maxVal;
! const Range minRange;
! const Range maxRange;
};
template <class T>
MinMaxRequester<T>::MinMaxRequester(const char* title,
! const char* minlabel, T& minval, const Range minrange,
! const char* maxlabel, T& maxval, const Range maxrange)
: TitledRequester(title), minLabel(minlabel), maxLabel(maxlabel),
minVal(minval), maxVal(maxval),
minRange(minrange), maxRange(maxrange) {}
***************
*** 248,254 ****
class EditFramesRequester : public MinMaxRequester<int> {
public:
! EditFramesRequester(int&, int&, int&, int&, const Range&);
protected:
redefined void configureRequest(Request *);
private:
--- 248,254 ----
class EditFramesRequester : public MinMaxRequester<int> {
public:
! EditFramesRequester(int&, int&, int&, int&, const Range);
protected:
redefined void configureRequest(Request *);
private:
***************
*** 258,264 ****
EditFramesRequester::EditFramesRequester(int& minframe, int& maxframe,
int& startchan, int& endchan,
! const Range& channelRange)
: MinMaxRequester<int>(
"Set Edit Region:",
"Start Channel:", startchan, channelRange,
--- 258,264 ----
EditFramesRequester::EditFramesRequester(int& minframe, int& maxframe,
int& startchan, int& endchan,
! const Range channelRange)
: MinMaxRequester<int>(
"Set Edit Region:",
"Start Channel:", startchan, channelRange,
***************
*** 274,280 ****
class EditTimeRequester : public MinMaxRequester<int> {
public:
! EditTimeRequester(double&, double&, int&, int&, const Range &);
protected:
redefined void configureRequest(Request *);
private:
--- 274,280 ----
class EditTimeRequester : public MinMaxRequester<int> {
public:
! EditTimeRequester(double&, double&, int&, int&, const Range);
protected:
redefined void configureRequest(Request *);
private:
***************
*** 285,291 ****
EditTimeRequester::EditTimeRequester(
double& mintime, double& maxtime,
int& startchan, int& endchan,
! const Range& channelRange)
: MinMaxRequester<int>(
"Set Edit Region:",
"Start Channel:", startchan, channelRange,
--- 285,291 ----
EditTimeRequester::EditTimeRequester(
double& mintime, double& maxtime,
int& startchan, int& endchan,
! const Range channelRange)
: MinMaxRequester<int>(
"Set Edit Region:",
"Start Channel:", startchan, channelRange,
diff -c -r old/vw_converter.C ./vw_converter.C
*** old/vw_converter.C Sun Jan 28 20:26:05 1996
--- ./vw_converter.C Mon Aug 5 22:44:36 1996
***************
*** 43,49 ****
boolean
VW_Converter::isPlayableFormat(DataType type) {
! return (type < FloatData && type != SignedCharData);
}
// what is best format to play (if given choice)
--- 45,51 ----
boolean
VW_Converter::isPlayableFormat(DataType type) {
! return (type < IntData && type != SignedCharData);
}
// what is best format to play (if given choice)
***************
*** 60,70 ****
return false;
}
- // add any specific code needed to stop play or record
-
int
VW_Converter::stop() {
! return Super::stop();
}
int
--- 62,70 ----
return false;
}
int
VW_Converter::stop() {
! return ioctl(SNDCTL_DSP_RESET, 0) && Super::stop();
}
int
***************
*** 87,92 ****
--- 87,93 ----
int sampleFormat = 0;
switch(dataType()) {
case UnsignedCharData: sampleFormat = AFMT_U8; break;
+ case SignedCharData: sampleFormat = AFMT_S8; break;
// case ALawData: sampleFormat = AFMT_A_LAW; break;
case MuLawData: sampleFormat = AFMT_MU_LAW; break;
case ShortData: sampleFormat = AFMT_S16_LE; break;
***************
*** 93,119 ****
default: break;
};
int confirmedFormat = sampleFormat;
! if (!ioctl (SNDCTL_DSP_SPEED, (char *) &dsp_speed))
! error("Unable to set converter sample rate.");
else if (!ioctl(SNDCTL_DSP_STEREO, (char *) &dsp_stereo))
! error("Unable to set converter channel attribute.");
! else if (!ioctl(SNDCTL_DSP_SETFMT, (char *) &confirmedFormat)
! || confirmedFormat != sampleFormat)
! error("Unable to set sample size.");
else if(!ioctl(SNDCTL_DSP_GETBLKSIZE, (char *) &audioBufferSize))
error("Unable to get audio buffer size.");
- else if(audioBufferSize < 1024 || audioBufferSize > (2*65536)) {
- char msg[128];
- sprintf(msg, "Invalid audio buffer size %d", audioBufferSize);
- error(msg);
- }
else status = true;
}
return status;
}
// return size of buffer, in bytes, to be written to the device during play
- // this can either be computed or just a static value
int
VW_Converter::writeSize() {
--- 94,141 ----
default: break;
};
int confirmedFormat = sampleFormat;
!
! int sizeCode = 0x1;
! // desired buffer size is 1/10 of a second's worth of sound
! int bufferSize = type_to_sampsize(dataType()) *
! round(float(channels()) * sampleRate() / 10.0);
! #ifdef DEBUG
! fprintf(stderr, "requesting buffer size %d\n", bufferSize);
! #endif
! while(pow(double(2.0), long(sizeCode)) < double(bufferSize))
! sizeCode <<= 1;
!
! sizeCode >>= 1; // back out by one
! sizeCode |= 2 << 16;
!
! // sizeCode = 0x0002XXXX where XXXX is (int) log2(bufsize)
! // and 0002 is 2 max number of fragments
!
! #ifdef DEBUG
! fprintf(stderr, "setting frag size code to 0x%x\n", sizeCode);
! #endif
!
! if (!ioctl (SNDCTL_DSP_SETFRAGMENT, (char *) &sizeCode))
! error("Unable to set fragment size.");
! else if (!ioctl(SNDCTL_DSP_SETFMT, (char *) &confirmedFormat))
! error("Unable to set sample format.");
! else if(confirmedFormat != sampleFormat)
! error("This sample format not supported by hardware.");
else if (!ioctl(SNDCTL_DSP_STEREO, (char *) &dsp_stereo))
! error("Unable to set channel attribute.");
! else if (!ioctl (SNDCTL_DSP_SPEED, (char *) &dsp_speed))
! error("Unable to set sample rate.");
else if(!ioctl(SNDCTL_DSP_GETBLKSIZE, (char *) &audioBufferSize))
error("Unable to get audio buffer size.");
else status = true;
+ #ifdef DEBUG
+ fprintf(stderr, "audio buffer size is %d\n", audioBufferSize);
+ #if defined(FreeBSDArchitecture)
+ XCOMM Extra defines, include directories, loading flags, and libraries needed
+ XCOMM for the FreeBSD version. The assumption is that you are using Gnu gcc/g++
+
+ ARCH_CCDEFINES = -DVOXWARE_DACS -DXDisplay=_XDisplay
+ ARCH_CCFLAGS =
+ ARCH_CCINCLUDES =
+ ARCH_CCLDFLAGS = -L/usr/local/lib
+ ARCH_CCLDLIBS = $(APP_FORTLIBS) -lm
+ DEBUG_CCFLAGS = -Ddebug
+
+ DAC_OBJS = conv_config.o conv_device.o vw_converter.o
+ ARCH_OBJS = utils.o
+ #endif
}
return status;
}
// return size of buffer, in bytes, to be written to the device during play
int
VW_Converter::writeSize() {
+
+
#if defined(i386SVR4Architecture)
XCOMM This assumes you have the SoundBlaster card on your machine
ARCH_CCDEFINES = -DSOUNDBLASTER
***************
*** 121,127 ****
}
// return size of buffer, in bytes, to be read from the device during record
- // this can either be computed or just a static value
int
VW_Converter::readSize() {
--- 143,148 ----
*** 243,248 ****
--- 260,270 ----
MakeObjectFromSrcFlags(sgi_dac, $(OPTIMIZE_CCFLAGS))
#endif
#if defined(LinuxArchitecture)
+ MakeObjectFromSrcFlags(utils, $(OPTIMIZE_CCFLAGS))
+ MakeObjectFromSrcFlags(conv_device, $(OPTIMIZE_CCFLAGS))
+ MakeObjectFromSrcFlags(vw_converter, $(OPTIMIZE_CCFLAGS))
+ #endif
+ #if defined(FreeBSDArchitecture)
MakeObjectFromSrcFlags(utils, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(conv_device, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(vw_converter, $(OPTIMIZE_CCFLAGS))

View File

@ -1,40 +1,37 @@
*** Imakefile.orig Wed Feb 28 16:16:02 1996
--- Imakefile Thu Apr 17 15:14:45 1997
*** /dev/null Mon Jul 12 15:25:18 1999
--- MiXViews.res Mon Jul 12 14:54:19 1999
***************
*** 139,144 ****
--- 139,159 ----
ARCH_OBJS = utils.o
#endif
+ #if defined(FreeBSDArchitecture)
+ XCOMM Extra defines, include directories, loading flags, and libraries needed
+ XCOMM for the FreeBSD version. The assumption is that you are using Gnu gcc/g++
*** 0 ****
--- 1,32 ----
+ ! This file must be renamed "MiXViews", and installed either in your home
+ ! directory (if you are the only one using mxv) or in the X res dir
+ ! (/usr/lib/X11/app-defaults) or in the InterViews res dir
+ ! (<installed InterViews dir>/lib/app-defaults).
+
+ ARCH_CCDEFINES = -DVOXWARE_DACS -DXDisplay=_XDisplay
+ ARCH_CCFLAGS =
+ ARCH_CCINCLUDES =
+ ARCH_CCLDFLAGS = -L/usr/local/lib
+ ARCH_CCLDLIBS = $(APP_FORTLIBS) -lm
+ DEBUG_CCFLAGS = -Ddebug
+ MiXViews*font: -*-times-medium-r-normal--14-*
+ MiXViews*PulldownCommandMenu*background: light blue
+ MiXViews*Command*background: lightskyblue2
+ MiXViews*PullrightCommandMenu*background: lightskyblue
+ MiXViews*MenuBar*font: -*-helvetica-bold-r-normal--17-*
+ MiXViews*MenuItem*font: -*-helvetica-medium-r-normal--14-*
+ MiXViews*PullrightMenu*font: -*-helvetica-medium-r-normal--14-*
+ MiXViews*DialogBox*Title*font: -*-helvetica-bold-r-normal--14-*
+ MiXViews*DialogBox*Subtitle*font: -*-helvetica-medium-r-normal--12-*
+ MiXViews*Alert*Title*foreground: Red
+ MiXViews*InputDialog*FileSelector*font: -*-times-medium-r-normal--14-*
+ MiXViews*PushButton*font: -*-helvetica-medium-r-normal--14-*
+ MiXViews*HorizontalScale*font: -*-helvetica-medium-r-normal--8-*
+ MiXViews*VerticalScale*font: -*-helvetica-medium-r-normal--8-*
+ MiXViews*StatusBar*font: -*-helvetica-medium-r-normal--12-*
+ MiXViews*FrameGraph*font: -*-helvetica-medium-r-normal--8-*
+ MiXViews*HorizontalScaleLabel*foreground: White
+ MiXViews*HorizontalScaleLabel*background: Black
+ MiXViews*VerticalScaleLabel*foreground: White
+ MiXViews*VerticalScaleLabel*background: Black
+ MiXViews*LPCWindowDisplayChannels: 4
+ MiXViews*FFTWindowDisplayChannels: 4
+ MiXViews*FFTWindow*PlotStyle: Line
+ MiXViews*PvocWindowDisplayChannels: 4
+ MiXViews*PvocWindow*VerticalScaleLabel*font: -*-helvetica-medium-r-normal--10-*
+ MiXViews*malloc_debug: off
+
+ DAC_OBJS = conv_config.o conv_device.o vw_converter.o
+ ARCH_OBJS = utils.o
+ #endif
+
#if defined(i386SVR4Architecture)
XCOMM This assumes you have the SoundBlaster card on your machine
ARCH_CCDEFINES = -DSOUNDBLASTER
***************
*** 253,258 ****
--- 268,278 ----
MakeObjectFromSrcFlags(sgi_dac, $(OPTIMIZE_CCFLAGS))
#endif
#if defined(LinuxArchitecture)
+ MakeObjectFromSrcFlags(utils, $(OPTIMIZE_CCFLAGS))
+ MakeObjectFromSrcFlags(conv_device, $(OPTIMIZE_CCFLAGS))
+ MakeObjectFromSrcFlags(vw_converter, $(OPTIMIZE_CCFLAGS))
+ #endif
+ #if defined(FreeBSDArchitecture)
MakeObjectFromSrcFlags(utils, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(conv_device, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(vw_converter, $(OPTIMIZE_CCFLAGS))

View File

@ -1,30 +1,22 @@
*** application.C.orig Thu Apr 17 15:23:34 1997
--- application.C Thu Apr 17 15:26:03 1997
*** old/application.C Mon Apr 27 05:41:31 1998
--- application.C Mon Jul 12 15:28:20 1999
***************
*** 41,47 ****
*** 41,46 ****
--- 41,47 ----
#include <iostream.h>
#include "localdefs.h"
! #ifndef NeXT
#include <errno.h>
extern char *sys_errlist[];
char *strerror(int errn) {
--- 41,48 ----
#include <iostream.h>
#include "localdefs.h"
! #if !defined(__FreeBSD__)
! #if !defined(NeXT)
#include <errno.h>
extern char *sys_errlist[];
char *strerror(int errn) {
+ #if !defined(__FreeBSD__)
#ifdef NeXT
extern "C" {
char *strerror(int);
***************
*** 53,58 ****
--- 54,60 ----
int sleep(unsigned);
*** 60,65 ****
--- 61,67 ----
return(sys_errlist[errn]);
}
#endif /* NeXT */
+ #endif
+ #endif /* FreeBSD */
class GlobalResourceList {
friend Application;

View File

@ -1,11 +1,11 @@
*** device.h.orig Thu Apr 17 14:53:39 1997
--- device.h Thu Apr 17 14:57:57 1997
*** old/device.h Fri Mar 13 02:01:36 1998
--- device.h Mon Jul 12 15:28:20 1999
***************
*** 33,39 ****
#include "InterViews/resource.h"
#include "localdefs.h"
! #ifndef sgi
! #if !defined(sgi) && !defined(sun)
extern "C" int ioctl(int, unsigned long, char*);
#endif
@ -13,7 +13,7 @@
#include "InterViews/resource.h"
#include "localdefs.h"
! #if !defined( sgi ) && !defined( __FreeBSD__ )
! #if !defined(sgi) && !defined(sun) && !defined(__FreeBSD__)
extern "C" int ioctl(int, unsigned long, char*);
#endif

View File

@ -1,33 +1,19 @@
*** diskfile.C.orig Thu Apr 17 14:57:15 1997
--- diskfile.C Thu Apr 17 15:06:28 1997
*** old/dialogbox.C Mon Jul 12 15:43:28 1999
--- dialogbox.C Mon Jul 12 15:43:56 1999
***************
*** 50,56 ****
#if defined(linux)
extern "C" void setbuffer(FILE*, char*, int);
#else
! #if !defined( sgi ) && !defined( sun )
extern "C" int setbuffer(FILE*, char*, int);
#endif
#endif
--- 50,56 ----
#if defined(linux)
extern "C" void setbuffer(FILE*, char*, int);
#else
! #if !defined( sgi ) && !defined( sun ) && !defined( __FreeBSD__ )
extern "C" int setbuffer(FILE*, char*, int);
#endif
#endif
***************
*** 193,198 ****
--- 193,203 ----
rw &= ~01;
if (fp->_flags & _IO_NO_WRITES)
rw &= ~02;
+ #elif defined(__FreeBSD__)
+ if (fp->_flags & (__SRD|__SRW))
+ rw |= 01;
+ if (fp->_flags & (__SWR|__SRW|__SAPP))
+ rw |= 02;
#else
if (fp->_flag & (_IOREAD|_IORW))
rw |= 01;
*** 45,51 ****
#include "textinput.h"
boolean DialogBox::override_WindowManager = false;
! int DialogBox::beep_Level = 50;
DialogBox::DialogBox(ButtonState* s, Interactor* u, Response r)
: Dialog(s, nil), defaultResponse(r), underlying(u), useBell(false) {
--- 45,51 ----
#include "textinput.h"
boolean DialogBox::override_WindowManager = false;
! int DialogBox::beep_Level = 0;
DialogBox::DialogBox(ButtonState* s, Interactor* u, Response r)
: Dialog(s, nil), defaultResponse(r), underlying(u), useBell(false) {

View File

@ -1,40 +1,33 @@
*** settergetter.h.orig Thu Apr 17 15:07:13 1997
--- settergetter.h Thu Apr 17 15:17:30 1997
*** old/diskfile.C Fri Apr 26 16:24:01 1996
--- diskfile.C Mon Jul 12 15:28:20 1999
***************
*** 64,69 ****
--- 64,70 ----
Status (Object::*setfunc)(Type),
Type (Object::*getfunc)() const)
: obj(objptr), setter(setfunc), getter(getfunc) {}
+ ~MethodSetterGetter() {}
redefined boolean set(Type value) {
return boolean((obj->*setter)(value));
}
*** 50,56 ****
#if defined(linux)
extern "C" void setbuffer(FILE*, char*, int);
#else
! #if !defined( sgi ) && !defined( sun )
extern "C" int setbuffer(FILE*, char*, int);
#endif
#endif
--- 50,56 ----
#if defined(linux)
extern "C" void setbuffer(FILE*, char*, int);
#else
! #if !defined( sgi ) && !defined( sun ) && !defined( __FreeBSD__ )
extern "C" int setbuffer(FILE*, char*, int);
#endif
#endif
***************
*** 82,94 ****
return new MethodSetterGetter<Object, Status, Type>(objptr, setfunc, getfunc);
}
- //********
-
template <class Status, class Type>
class FunctionSetterGetter : public SetterGetter<Type> {
public:
FunctionSetterGetter(Status (*setfunc)(Type), Type (*getfunc)())
: setter(setfunc), getter(getfunc) {}
redefined boolean set(Type value) { (*setter)(value); return true; }
redefined Type get() const { return (*getter)(); }
private:
--- 83,94 ----
return new MethodSetterGetter<Object, Status, Type>(objptr, setfunc, getfunc);
}
template <class Status, class Type>
class FunctionSetterGetter : public SetterGetter<Type> {
public:
FunctionSetterGetter(Status (*setfunc)(Type), Type (*getfunc)())
: setter(setfunc), getter(getfunc) {}
+ ~FunctionSetterGetter() {}
redefined boolean set(Type value) { (*setter)(value); return true; }
redefined Type get() const { return (*getter)(); }
private:
*** 193,198 ****
--- 193,203 ----
rw &= ~01;
if (fp->_flags & _IO_NO_WRITES)
rw &= ~02;
+ #elif defined(__FreeBSD__)
+ if (fp->_flags & (__SRD|__SRW))
+ rw |= 01;
+ if (fp->_flags & (__SWR|__SRW|__SAPP))
+ rw |= 02;
#else
if (fp->_flag & (_IOREAD|_IORW))
rw |= 01;

View File

@ -1,16 +1,22 @@
*** smartmem.C.orig Thu Apr 17 15:32:03 1997
--- smartmem.C Thu Apr 17 15:33:41 1997
*** old/settergetter.h Wed Jan 17 03:57:37 1996
--- settergetter.h Mon Jul 12 15:28:20 1999
***************
*** 64,70 ****
--- 64,74 ----
void
SmartMemory::free(void* ptr, unsigned size) {
if(ptr) {
+ #ifdef __FreeBSD__
+ ::free(ptr);
+ #else
::cfree(ptr);
+ #endif
totalBytes_Allocated -= size;
*** 64,69 ****
--- 64,70 ----
Status (Object::*setfunc)(Type),
Type (Object::*getfunc)() const)
: obj(objptr), setter(setfunc), getter(getfunc) {}
+ ~MethodSetterGetter() {}
redefined boolean set(Type value) {
return boolean((obj->*setter)(value));
}
}
***************
*** 89,94 ****
--- 90,96 ----
public:
FunctionSetterGetter(Status (*setfunc)(Type), Type (*getfunc)())
: setter(setfunc), getter(getfunc) {}
+ ~FunctionSetterGetter() {}
redefined boolean set(Type value) { (*setter)(value); return true; }
redefined Type get() const { return (*getter)(); }
private:

View File

@ -1,16 +1,16 @@
*** vw_converter.C.orig Thu Apr 17 14:49:48 1997
--- vw_converter.C Thu Apr 17 14:50:17 1997
*** old/smartmem.C Thu May 25 00:39:35 1995
--- smartmem.C Mon Jul 12 15:28:20 1999
***************
*** 27,33 ****
--- 27,37 ----
#pragma implementation
#endif
*** 64,70 ****
--- 64,74 ----
void
SmartMemory::free(void* ptr, unsigned size) {
if(ptr) {
+ #ifdef __FreeBSD__
+ #include <machine/soundcard.h>
+ ::free(ptr);
+ #else
#include <sys/soundcard.h>
::cfree(ptr);
+ #endif
#include "localdefs.h"
#include "application.h"
#include "vw_converter.h"
totalBytes_Allocated -= size;
}
}

View File

@ -1,37 +1,40 @@
*** /dev/null Thu Apr 17 15:41:53 1997
--- MiXViews.res Thu Apr 17 16:08:47 1997
*** old/vw_converter.C Thu Jan 30 00:22:41 1997
--- vw_converter.C Mon Jul 12 15:28:20 1999
***************
*** 0 ****
--- 1,32 ----
+ ! This file must be renamed "MiXViews", and installed either in your home
+ ! directory (if you are the only one using mxv) or in the X res dir
+ ! (/usr/lib/X11/app-defaults) or in the InterViews res dir
+ ! (<installed InterViews dir>/lib/app-defaults).
+
+ MiXViews*font: -*-times-medium-r-normal--14-*
+ MiXViews*PulldownCommandMenu*background: light blue
+ MiXViews*Command*background: lightskyblue2
+ MiXViews*PullrightCommandMenu*background: lightskyblue
+ MiXViews*MenuBar*font: -*-helvetica-bold-r-normal--17-*
+ MiXViews*MenuItem*font: -*-helvetica-medium-r-normal--14-*
+ MiXViews*PullrightMenu*font: -*-helvetica-medium-r-normal--14-*
+ MiXViews*DialogBox*Title*font: -*-helvetica-bold-r-normal--14-*
+ MiXViews*DialogBox*Subtitle*font: -*-helvetica-medium-r-normal--12-*
+ MiXViews*Alert*Title*foreground: Red
+ MiXViews*InputDialog*FileSelector*font: -*-times-medium-r-normal--14-*
+ MiXViews*PushButton*font: -*-helvetica-medium-r-normal--14-*
+ MiXViews*HorizontalScale*font: -*-helvetica-medium-r-normal--8-*
+ MiXViews*VerticalScale*font: -*-helvetica-medium-r-normal--8-*
+ MiXViews*StatusBar*font: -*-helvetica-medium-r-normal--12-*
+ MiXViews*FrameGraph*font: -*-helvetica-medium-r-normal--8-*
+ MiXViews*HorizontalScaleLabel*foreground: White
+ MiXViews*HorizontalScaleLabel*background: Black
+ MiXViews*VerticalScaleLabel*foreground: White
+ MiXViews*VerticalScaleLabel*background: Black
+ MiXViews*LPCWindowDisplayChannels: 4
+ MiXViews*FFTWindowDisplayChannels: 4
+ MiXViews*FFTWindow*PlotStyle: Line
+ MiXViews*PvocWindowDisplayChannels: 4
+ MiXViews*PvocWindow*VerticalScaleLabel*font: -*-helvetica-medium-r-normal--10-*
+ MiXViews*malloc_debug: off
+
*** 27,33 ****
--- 27,37 ----
#pragma implementation
#endif
+ #ifdef __FreeBSD__
+ #include <machine/soundcard.h>
+ #else
#include <sys/soundcard.h>
+ #endif
#include "localdefs.h"
#include "application.h"
#include "vw_converter.h"
***************
*** 114,122 ****
fprintf(stderr, "setting frag size code to 0x%x\n", sizeCode);
#endif
if (!ioctl (SNDCTL_DSP_SETFRAGMENT, (char *) &sizeCode))
error("Unable to set fragment size.");
! else if (!ioctl(SNDCTL_DSP_SETFMT, (char *) &confirmedFormat))
error("Unable to set sample format.");
else if(confirmedFormat != sampleFormat)
error("This sample format not supported by hardware.");
--- 118,129 ----
fprintf(stderr, "setting frag size code to 0x%x\n", sizeCode);
#endif
+ #ifndef __FreeBSD__
if (!ioctl (SNDCTL_DSP_SETFRAGMENT, (char *) &sizeCode))
error("Unable to set fragment size.");
! else
! #endif
! if (!ioctl(SNDCTL_DSP_SETFMT, (char *) &confirmedFormat))
error("Unable to set sample format.");
else if(confirmedFormat != sampleFormat)
error("This sample format not supported by hardware.");

View File

@ -1 +1 @@
Sound file editor/player/recorder/converter for X Window System
Sound file editor/player/recorder/converter for X Window System.

View File

@ -3,4 +3,4 @@ FreeBSD's voxware sound drivers written by doug@ccmrc.ucsb.edu.
It supports the following sound file formats: IRCAM, SND/AU, Hybrid (CMIX),
AIF-C, WAVE, and raw (headerless).
Version 1.10.
Version 1.20.