bayonne-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]