~ubuntu-branches/ubuntu/raring/muse/raring-proposed

« back to all changes in this revision

Viewing changes to synti/stklib/RtWvOut.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Kobras
  • Date: 2004-02-07 15:18:22 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040207151822-es27xxkzbcxkebjm
Tags: 0.6.3-1
* New upstream version.
* Added patches:
  + [10_alsa_init_fix] New, from upstream CVS.
    Initialize direction variable when setting Alsa parameters.
  + [10_canvas_translation_fix] New, from upstream CVS.
    Do not translate tooltips twice in canvas popup.
  + [10_checkbox_fix] New, from upstream CVS.
    Use proper set/test methods on metronome checkboxes.
  + [10_html_doc_cleanup] New.
    Fix links and HTML errors in documentation.
  + [20_allow_system_timer] New.
    The new upstream version fails by default if the real-time clock
    could not be accessed (usually the case when not running suid-root).
    This patch reverts the old behaviour of falling back to the more
    inaccurate system timer.
* Updated patches:
  + [11_PIC_fixes_fixup] Rediffed.
* Removed patches:
  + [20_no_atomic_asm] Merged upstream.
* debian/compat: Splice out debhelper compatibility level from rules file.
* debian/control: Build-depend on latest jack release by default.
  Closes: #228788
* debian/control: Bump standards version.
* debian/control: Use auto-generated debconf dependency via misc:Depends.
* debian/control: Minor tweaks to the long description.
* debian/control: Tighten fluidsynth build dependency to sane version.
* debian/muse.doc-base: New. Register HTML documentation with doc-base.
* debian/templates: Tiny rewording, and typo fix.
* debian/templates, debian/po/*: Switch to po-debconf for translations.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*******************************************/
2
 
/*  Real-Time Audio Output Class,          */
3
 
/*  by Perry R. Cook, 1996                 */
4
 
/*  Revised by Gary P. Scavone, 2000       */
5
 
/*                                         */
6
 
/*  This object opens a realtime soundout  */
7
 
/*  device, and pokes buffers of samples   */
8
 
/*  into it.                               */
9
 
/*******************************************/
10
 
 
11
 
#include "RtWvOut.h"
12
 
 
13
 
#if defined(__STK_REALTIME_)
14
 
 
15
 
RtWvOut :: RtWvOut(int chans, int device)
16
 
{
17
 
  // We'll let RTSoundIO deal with channel and srate limitations.
18
 
  channels = chans;
19
 
  sound_dev = new RtAudio(channels, SRATE, "play", device);
20
 
  data_length = RT_BUFFER_SIZE*channels;
21
 
  // Add a few extra samples for good measure
22
 
  data = (INT16 *) new INT16[data_length+10];
23
 
}
24
 
 
25
 
RtWvOut :: ~RtWvOut()
26
 
{
27
 
  sound_dev->playBuffer(data,counter);
28
 
  counter = 0;
29
 
  while (counter<data_length)   {
30
 
    data[counter++] = 0;
31
 
  }
32
 
  sound_dev->playBuffer(data,counter);
33
 
  sound_dev->playBuffer(data,counter);  // Are these extra writes necessary?
34
 
  sound_dev->playBuffer(data,counter);
35
 
  delete sound_dev;
36
 
}
37
 
 
38
 
void RtWvOut :: tick(MY_FLOAT sample)
39
 
{
40
 
  for (int i=0;i<channels;i++)
41
 
    data[counter++] = (INT16) (sample * 32000.0);
42
 
 
43
 
  if (counter >= data_length) {
44
 
    sound_dev->playBuffer(data,data_length);
45
 
    counter = 0;
46
 
  }
47
 
}
48
 
 
49
 
void RtWvOut :: mtick(MY_MULTI samples)
50
 
{
51
 
  for (int i=0;i<channels;i++)
52
 
    data[counter++] = (INT16) (*samples++ * 32000.0);
53
 
 
54
 
  if (counter >= data_length) {
55
 
    sound_dev->playBuffer(data,data_length);
56
 
    counter = 0;
57
 
  }
58
 
}
59
 
 
60
 
//windows stop and start methods ... because windoze sucks
61
 
#if (defined(__OS_Win_) )
62
 
 
63
 
void RtWvOut :: stopPlay() {
64
 
  sound_dev->stopPlay();
65
 
}
66
 
 
67
 
void RtWvOut :: startPlay() {
68
 
  sound_dev->startPlay();
69
 
}
70
 
 
71
 
void RtWvOut :: stopRecord() {
72
 
  sound_dev->stopRecord();
73
 
}
74
 
 
75
 
void RtWvOut :: startRecord() {
76
 
  sound_dev->startRecord();
77
 
}
78
 
 
79
 
#endif  // extra windoze crap
80
 
 
81
 
#endif