Coin Logo http://www.sim.no
http://www.coin3d.org

SoVRMLAudioClip.h
1/**************************************************************************\
2 *
3 * This file is part of the Coin 3D visualization library.
4 * Copyright (C) 1998-2007 by Systems in Motion. All rights reserved.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * ("GPL") version 2 as published by the Free Software Foundation.
9 * See the file LICENSE.GPL at the root directory of this source
10 * distribution for additional information about the GNU GPL.
11 *
12 * For using Coin with software that can not be combined with the GNU
13 * GPL, and for taking advantage of the additional benefits of our
14 * support services, please contact Systems in Motion about acquiring
15 * a Coin Professional Edition License.
16 *
17 * See http://www.coin3d.org/ for more information.
18 *
19 * Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
20 * http://www.sim.no/ sales@sim.no coin-support@coin3d.org
21 *
22\**************************************************************************/
23
24#ifndef COIN_SOVRMLAUDIOCLIP_H
25#define COIN_SOVRMLAUDIOCLIP_H
26
27#include <Inventor/nodes/SoSubNode.h>
28#include <Inventor/nodes/SoNode.h>
29#include <Inventor/fields/SoSFString.h>
30#include <Inventor/fields/SoMFString.h>
31#include <Inventor/fields/SoSFBool.h>
32#include <Inventor/fields/SoSFFloat.h>
33#include <Inventor/fields/SoSFTime.h>
34#include <Inventor/lists/SbStringList.h>
35#include <Inventor/SbTime.h>
36
37class SoVRMLAudioClipP;
38
39class COIN_DLL_API SoVRMLAudioClip : public SoNode
40{
41 typedef SoNode inherited;
42 SO_NODE_HEADER(SoVRMLAudioClip);
43
44public:
45 typedef void *open_func(const SbStringList &url,
46 SoVRMLAudioClip *clip, void *userdataptr);
47 typedef size_t read_func(void *datasource,
48 void *buffer, int numframes, int &channels,
49 SoVRMLAudioClip *clip, void *userdataptr);
50 typedef int seek_func(void *datasource, long offset, int whence,
51 SoVRMLAudioClip *clip, void *userdataptr);
52 typedef long tell_func(void *datasource,
53 SoVRMLAudioClip *clip, void *userdataptr);
54 typedef int close_func(void *datasource,
55 SoVRMLAudioClip *clip, void *userdataptr);
56
57 static void initClass(void);
58 SoVRMLAudioClip(void);
59
66
67 static void setSubdirectories(const SbList<SbString> &subdirectories);
68 static const SbStringList & getSubdirectories();
69 static void setDefaultPauseBetweenTracks(SbTime pause);
70 static SbTime getDefaultPauseBetweenTracks();
71 static void setDefaultIntroPause(SbTime pause);
72 static SbTime getDefaultIntroPause();
73 static void setDefaultSampleRate(int samplerate);
74 static int getDefaultSampleRate();
75 static void setDefaultTimerInterval(SbTime interval);
76 static SbTime getDefaultTimerInterval();
77
78 int getSampleRate();
79
80 void * open(const SbStringList &url);
81 size_t read(void *datasource, void *buffer, int numframes, int &channels);
82 int seek(void *datasource, long offset, int whence);
83 long tell(void *datasource);
84 int close(void *datasource);
85
86 void setCallbacks(open_func *opencb, read_func *readcb, seek_func *seekcb,
87 tell_func *tellcb, close_func *closecb, void *userdataptr);
88
89protected:
90 virtual ~SoVRMLAudioClip();
92 SoSFBool isActive; // eventOut
93
94private:
95 SoVRMLAudioClipP *pimpl;
96 friend class SoVRMLAudioClipP;
97};
98
99#endif // ! COIN_SOVRMLAUDIOCLIP_H
The SbStringList class is a container for arrays of SbString pointers.
Definition: SbStringList.h:31
The SbTime class instances represents time values.
Definition: SbTime.h:41
The SoBase class is the top-level superclass for a number of class-hierarchies.
Definition: SoBase.h:41
static SbBool read(SoInput *in, SoBase *&base, SoType expectedtype)
Definition: SoBase.cpp:1146
The SoMFString class is a container for SbString values.
Definition: SoMFString.h:31
The SoNode class is the base class for nodes used in scene graphs.
Definition: SoNode.h:47
The SoSFBool class is a container for an SbBool value.
Definition: SoSFBool.h:30
The SoSFFloat class is a container for a floating point value.
Definition: SoSFFloat.h:30
The SoSFString class is a container for an SbString.
Definition: SoSFString.h:31
The SoSFTime class is a container for an SbTime value.
Definition: SoSFTime.h:31
The SoVRMLAudioClip class is used to load and store audio data.
Definition: SoVRMLAudioClip.h:40
SoMFString url
Definition: SoVRMLAudioClip.h:65
SoSFBool loop
Definition: SoVRMLAudioClip.h:61
SoSFFloat pitch
Definition: SoVRMLAudioClip.h:62
SoSFTime duration_changed
Definition: SoVRMLAudioClip.h:91
SoSFBool isActive
Definition: SoVRMLAudioClip.h:92
SoSFString description
Definition: SoVRMLAudioClip.h:60
SoSFTime stopTime
Definition: SoVRMLAudioClip.h:64
SoSFTime startTime
Definition: SoVRMLAudioClip.h:63

Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.

Generated on Wed Jul 20 2022 for Coin by Doxygen. 1.9.4