summaryrefslogtreecommitdiffstats
path: root/examples/testasubsys.cc
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2020-12-06 19:28:06 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2020-12-06 19:28:06 +0900
commit00d4f92b717fbcbed6f9eee361975d6ee5380d59 (patch)
tree043b5970d66e539e1fbf6dde03440d6569e34c4e /examples/testasubsys.cc
parent2f53bfe61c8ee78ff36ac6c66ae714b01e407b33 (diff)
downloadarts-00d4f92b717fbcbed6f9eee361975d6ee5380d59.tar.gz
arts-00d4f92b717fbcbed6f9eee361975d6ee5380d59.zip
Renaming of files in preparation for code style tools.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'examples/testasubsys.cc')
-rw-r--r--examples/testasubsys.cc142
1 files changed, 0 insertions, 142 deletions
diff --git a/examples/testasubsys.cc b/examples/testasubsys.cc
deleted file mode 100644
index b70bf9d..0000000
--- a/examples/testasubsys.cc
+++ /dev/null
@@ -1,142 +0,0 @@
- /*
-
- Copyright (C) 2000 Stefan Westerfeld
- stefan@space.twc.de
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- Permission is also granted to link this program with the Qt
- library, treating Qt like a library that normally accompanies the
- operating system kernel, whether or not that is in fact the case.
-
- */
-
-#include <iostream>
-#include <math.h>
-#include "audiosubsys.h"
-#include "convert.h"
-#include "dispatcher.h"
-
-using namespace std;
-using namespace Arts;
-
-class SinTest : public ASProducer {
-protected:
- int audiofd;
- int done;
- AudioSubSystem *as;
- bool attached;
-
-public:
- SinTest();
- virtual ~SinTest();
- void needMore();
- void run(long samples);
-};
-
-SinTest::SinTest() : done(0), as(AudioSubSystem::the())
-{
- // initialize and open audio subsystem (defaults to 44kHz, 16bit, stereo)
- attached = as->attachProducer(this);
- if(!attached)
- {
- cout << "audio subsystem is already used?" << endl;
- }
- else
- {
- if(as->open() == false)
- {
- cout << "audio subsystem init failed ("
- << as->error() << ")" << endl;
- audiofd = -1;
- }
- else
- audiofd = as->selectWriteFD();
- }
-}
-
-SinTest::~SinTest()
-{
- // deinitialize the audio subsystem
- if(attached)
- as->detachProducer();
-}
-
-void SinTest::run(long samples)
-{
- // run this loop until enough samples are produced
- while(attached && audiofd >= 0 && (done < samples))
- {
- fd_set wfds, efds;
- FD_ZERO(&wfds);
- FD_ZERO(&efds);
- FD_SET(audiofd, &wfds);
- FD_SET(audiofd, &efds);
-
- // look if the audio filedescriptor becomes writeable
- int result = select(audiofd+1,0,&wfds,&efds,0);
- if(result > 0)
- {
- // if yes, tell the audio subsystem to do something about it
- if(FD_ISSET(audiofd, &wfds))
- as->handleIO(AudioSubSystem::ioWrite);
- if(FD_ISSET(audiofd, &efds))
- as->handleIO(AudioSubSystem::ioExcept);
- }
- else
- {
- cout << "select returned " << result << endl;
- }
- }
-}
-
-/*
- * needMore is a callback by the audio subsystem, which is made as soon as
- * the internal buffers need a refill
- */
-void SinTest::needMore()
-{
- float left[100], right[100];
- unsigned char out[400];
-
- // generate two waves, one 440 Hz (left), one 880Hz (right)
- for(int i=0;i<100;i++)
- {
- left[i] = sin((float)i*6.28/100.0);
- right[i] = sin((float)i*6.28/50.0);
- }
- convert_stereo_2float_i16le(100, left, right, out);
-
- // write them to the audio subsystem
- as->write(out,400);
- done += 100;
-}
-
-/*
- * This is intended to help testing the audio subsystem with different
- * hardware without needing to use the whole server.
- *
- * Warning: this is *not* an example how to use aRts (there are others),
- * but a simple test program for debugging purposes.
- */
-int main()
-{
- Dispatcher d; // to get startup classes executed
-
- // the test, generate 88100 samples (2 seconds) of pure sine wave test data
- SinTest s;
- s.run(88100);
- return 0;
-}