[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bayonne-devel] How to test for the existance of an audio file
From: |
Tony White |
Subject: |
Re: [Bayonne-devel] How to test for the existance of an audio file |
Date: |
Fri, 2 May 2008 04:12:39 +0300 |
David,
I've tried your suggestion - but no joy (yet!). I'm using bayonne1,
so I looked at file.cpp (in ccscript2 source) and found tests
'exists', 'file', and 'dir' (with exists and file being essentially
the same) - but I'm not a c++ expert ;)
So, I have 'use file' at the top of the script, and within the script i have:
set %1 "file_to_play"
.
.
.
if -file %1
then
play %1
else
play missing_message
endif
but I always get the missing_message.au playing. %1 contains the name
of the file to play, without the .au suffix
I am assuming that the same conditions apply as with 'play' - so that
the default extension is .au, and the various possible locations for
the file are searched (although, to avoid path problems confusing the
issue, both file_to_play.au, and missing_message.au are in
/usr/local/share/bayonne/UsEngM
What am I doing wrong?
Tony
2008/5/1 David Sugar <address@hidden>:
> Yes there is. With "if -file xxx" or "do -file xxx" in a loop, "case
> -file", etc. There is a -file and -dir option for conditional tests. With
> Bayonne and ccscript2 these were installed as a separate dso with "use
> file", with bayonne2 they are built-ins. Check server/runtime.cpp
> "addConditional" for full list....
>
>
>
> Tony White wrote:
>
> > Thanks David,
> >
> > So there is no way, other than jumping into a TGI script, to test for
> > an audio (or other) file's existance, so that a decision can be made
> > if a file is not present? Do you think it feasible that an external
> > TGI script is run after every keypress as a caller makes choices? Or
> > is it better to run one TGI script at the start of the call, to
> > populate an array with ALL possible files' presence or absence? The
> > files may run into the tens of thousands! so it would be a VERY big
> > array - and would be at least four-dimensional. And as the system is
> > dynamic, files may appear, or disappear from one call to the next.
> >
> > Tony
> >
> > 2008/5/1 David Sugar <address@hidden>:
> >
> > > There is a "play.one" option, that plays the first file that is found,
> and
> > > only one, out of a list. There is a "play.any" I think, that plays any
> that
> > > can be found and skips any not found in a list. The default is to abort
> if
> > > not found.
> > >
> > >
> > >
> > > Tony White wrote:
> > >
> > >
> > > > Hi David and all,
> > > >
> > > > In bayonne script, if I list several files to play eg.
> > > >
> > > > play %1 %2 %3 ......
> > > >
> > > > ...where %1, %2, %3 etc. variables have been set to file1.au,
> > > > file2.au, file3.au .....
> > > >
> > > > so long as all three files exist on disk, then all is well. BUT if,
> > > > for example, file1.au doesn't exist, then the play will abort -
> > > > without playing the rest of the files.
> > > >
> > > > The files are dynamically generated outside the bayonne environment -
> > > > and may sometimes be missing. So I am stuck on how to test within a
> > > > script that a file exists before attempting to play it - and indeed to
> > > > substitute a 'default' file instead.
> > > >
> > > > The only way i can see is to jump out into a TGI - but is there
> > > > already a way to test this? And if not, maybe this would be a
> > > > possible test to include in the next version?
> > > >
> > > > Oh - and before I get the suggestion:
> > > > play %1
> > > > play %2
> > > > play %3
> > > > ....
> > > >
> > > > yes, that works insofar as playing all files, even if one is missing
> > > > - but there is a 'step' delay between each 'play' statement - which I
> > > > want to avoid... and there seems to be no way to see if a file is
> > > > missing so as to be able to substitute a 'default' file instead.
> > > >
> > > > Thanks,
> > > >
> > > >
> > >
> >
> >
> >
> >
>
--
Tony White