diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | e2de64d6f1beb9e492daf5b886e19933c1fa41dd (patch) | |
tree | 9047cf9e6b5c43878d5bf82660adae77ceee097a /kscd/kscdmagic/syna.h | |
download | tdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.tar.gz tdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdemultimedia@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kscd/kscdmagic/syna.h')
-rw-r--r-- | kscd/kscdmagic/syna.h | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/kscd/kscdmagic/syna.h b/kscd/kscdmagic/syna.h new file mode 100644 index 00000000..40128532 --- /dev/null +++ b/kscd/kscdmagic/syna.h @@ -0,0 +1,180 @@ +/* + $Id$ + + Synaesthesia - program to display sound graphically + Copyright (C) 1997 Paul Francis Harrison + + 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., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The author may be contacted at: + phar6@student.monash.edu.au + or + 27 Bond St., Mt. Waverley, 3149, Melbourne, Australia +*/ + +#ifndef __SYNA_H__ +#define __SYNA_H__ + + +#if defined(__linux__) || defined(__svr4__) || defined(__osf__) + +void error(const char *str, bool syscall=false); //Display error and exit +void warning(const char *str, bool syscall=false); //Display error + +//void error(char *str,bool syscall=false); +inline void attempt(int x, const char *y, bool syscall=false) { if (x == -1) error(y,syscall); } + +//void warning(char *str,bool syscall=false); +inline void attemptNoDie(int x, const char *y, bool syscall=false) { if (x == -1) warning(y,syscall); } + +#include "polygon.h" +#include "magicconf.h" + +/***************************************/ + + +#define PROGNAME "kscdmagic" + + +#ifdef __FreeBSD__ + + +typedef unsigned short sampleType; + +#else + +typedef short sampleType; + +#ifndef __linux__ + +#warning This target has not been tested! + +#endif +#endif + +#ifdef __osf__ +#include <machine/endian.h> +#else +#include <endian.h> +#endif +#if BYTE_ORDER == BIG_ENDIAN +#define BIGENDIAN +#else +#define LITTLEENDIAN +#endif + + +#define n (1<<m) +#define recSize (1<<m-overlap) + +/* core */ +extern volatile sampleType *data; +//extern unsigned char *output, *lastOutput, *lastLastOutput; +extern Bitmap<unsigned short> outputBmp, lastOutputBmp, lastLastOutputBmp; +#define ucoutput ((unsigned char*)outputBmp.data) +#define lastOutput ((unsigned char*)lastOutputBmp.data) +#define lastLastOutput ((unsigned char*)lastLastOutputBmp.data) + +inline unsigned short combiner(unsigned short a,unsigned short b) { + //Not that i want to give the compiler a hint or anything... + unsigned char ah = a>>8, al = a&255, bh = b>>8, bl = b&255; + if (ah < 64) ah *= 4; else ah = 255; + if (al < 64) al *= 4; else al = 255; + if (bh > ah) ah = bh; + if (bl > al) al = bl; + return ah*256+al; +} + +extern PolygonEngine<unsigned short,combiner,2> polygonEngine; + +extern int outWidth, outHeight; + +void allocOutput(int w,int h); + +void coreInit(); +void setStarSize(double size); +int coreGo(); +void fade(); + +/* *wrap */ +void screenInit(int xHint,int yHint,int widthHint,int heightHint); +void screenSetPalette(unsigned char *palette); +void screenEnd(void); +void screenShow(void); +int sizeUpdate(void); + +void inputUpdate(int &mouseX,int &mouseY,int &mouseButtons,char &keyHit); + +/* ui */ +void interfaceInit(); +void interfaceSyncToState(); +void interfaceEnd(); +bool interfaceGo(); + +enum SymbolID { + Speaker, Bulb, + Play, Pause, Stop, SkipFwd, SkipBack, + Handle, Pointer, Open, NoCD, Exit, + Zero, One, Two, Three, Four, + Five, Six, Seven, Eight, Nine, + Slider, Selector, Plug, Loop, Box, Bar, + Flame, Wave, Stars, Star, Diamond, Size, FgColor, BgColor, + Save, Reset, TrackSelect, + NotASymbol +}; + +/* State information */ + +extern SymbolID state; +extern int track, frames; +extern double trackProgress; +extern char **playList; +extern int playListLength, playListPosition; +extern SymbolID fadeMode; +extern bool pointsAreDiamonds; +extern double brightnessTwiddler; +extern double starSize; +extern double fgRedSlider, fgGreenSlider, bgRedSlider, bgGreenSlider; + +extern double volume; + +void setStateToDefaults(); +void saveConfig(); + +void putString(char *string,int x,int y,int red,int blue); + +/* sound */ +enum SoundSource { SourceLine, SourceCD, SourcePipe }; + +void cdOpen(char *cdromName); +void cdClose(void); +void cdGetStatus(int &track, int &frames, SymbolID &state); +void cdPlay(int trackFrame, int endFrame=-1); +void cdStop(void); +void cdPause(void); +void cdResume(void); +void cdEject(void); +void cdCloseTray(void); +int cdGetTrackCount(void); +int cdGetTrackFrame(int track); +void openSound(SoundSource sound, int downFactor, const char *dspName, char *mixerName); +void closeSound(); +void setupMixer(double &loudness); +void setVolume(double loudness); +int getNextFragment(void); + + +#endif // linux || svr4 +#endif // __SYNA_H__ |