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

« back to all changes in this revision

Viewing changes to muse/event.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Fabrice Coutadeur
  • Date: 2010-11-17 21:43:38 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20101117214338-1hvfl7oo2dsqnvrb
Tags: 1.1-0ubuntu1
* New upstream release (LP: #668631)
* Switch to dpkg-source 3.0 (quilt) format
* Switch to dh7 short form
* debian/rules:
  - added --enable-dssi and --enable-osc to conf flags for dssi support
  - added -ljackserver to LDFLAGS to fix a FTBFS because of --as-needed
* debian/control:
  - added build build dependency on liblo-dev and dssi-dev for dssi support
  - bump Standards-version to 3.9.1. No changes required.
* debian/muse.desktop, debian/muse.xpm: dropped as desktop file and icon is
  now shipped upstream.
* fix-desktop-categories.patch: fix Categories tag in upstream desktop file
* 10_es_locale_fix.dpatch: refreshed and converted to quilt as
  fix_es_locale.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
 
9
9
#include <stdio.h>
10
10
// #include <memory.h>
11
 
#include "audioconvert.h"
 
11
//#include "audioconvert.h"
12
12
#include "event.h"
13
13
#include "eventbase.h"
14
14
#include "waveevent.h"
16
16
//#include "globals.h"
17
17
 
18
18
// Added by Tim. p3.3.20
19
 
#define USE_SAMPLERATE
 
19
//#define USE_SAMPLERATE
20
20
 
21
21
//---------------------------------------------------------
22
22
//   Event
65
65
 
66
66
Event Event::clone()
67
67
      {
 
68
      // p3.3.31
 
69
      //printf("Event::clone() this:%p\n", this);
 
70
      
 
71
      // p3.3.31
 
72
      //return Event(ev->clone());
 
73
      #ifdef USE_SAMPLERATE
 
74
      return Event(ev->clone(), _audConv);
 
75
      #else
68
76
      return Event(ev->clone());
 
77
      #endif
69
78
      }
70
79
 
71
80
Event::Event() 
72
81
73
82
  ev = 0; 
74
 
  _sfCurFrame = 0;
75
 
  _audConv = 0;
 
83
  //_sfCurFrame = 0;
 
84
  //_audConv = 0;
76
85
}
77
86
 
78
87
Event::Event(EventType t) {
79
 
            _sfCurFrame = 0;
80
 
            _audConv = 0;
 
88
            //_sfCurFrame = 0;
 
89
            //_audConv = 0;
81
90
            
82
91
            if (t == Wave)
83
92
                  ev = new WaveEventBase(t);
86
95
            ++(ev->refCount);
87
96
            }
88
97
Event::Event(const Event& e) {
89
 
            _sfCurFrame = 0;
90
 
            _audConv = 0;
 
98
            //_sfCurFrame = 0;
 
99
            //_audConv = 0;
91
100
            
92
101
            ev = e.ev;
93
102
            if(ev)
100
109
            #endif
101
110
          }
102
111
Event::Event(EventBase* eb) {
103
 
            _sfCurFrame = 0;
104
 
            _audConv = 0;
 
112
            //_sfCurFrame = 0;
 
113
            //_audConv = 0;
105
114
            
106
115
            ev = eb;
107
116
            ++(ev->refCount);
113
122
              _audConv = new SRCAudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY);
114
123
            #endif  
115
124
            }
116
 
 
 
125
#ifdef USE_SAMPLERATE
 
126
Event::Event(EventBase* eb, AudioConverter* cv) {
 
127
            _sfCurFrame = 0;
 
128
            _audConv = 0;
 
129
            
 
130
            ev = eb;
 
131
            ++(ev->refCount);
 
132
            
 
133
            if(cv)
 
134
              _audConv = cv->reference();
 
135
            }
 
136
#endif  
 
137
            
117
138
Event::~Event() {
118
139
            if (ev && --(ev->refCount) == 0) {
119
140
                  delete ev;
254
275
  
255
276
  #ifdef USE_SAMPLERATE
256
277
  //if(_audConv)
257
 
  if(_audConv && !sf.isNull())
258
 
  { 
 
278
//  if(_audConv && !sf.isNull())
 
279
//  { 
259
280
    //_audConv->setSndFile(sf);
260
281
    //if(sf.isNull())
261
282
    //  AudioConverter::release(_audConv);
262
283
    //else
 
284
//      _audConv->setChannels(sf.channels());
 
285
//  }  
 
286
  
 
287
  if(_audConv)
 
288
  { 
 
289
    // Do we release? Or keep the converter around, while gaining speed since no rapid creation/destruction. 
 
290
    //if(sf.isNull())
 
291
    //  _audConv = AudioConverter::release(_audConv);
 
292
    //else
 
293
    //  _audConv->setChannels(sf.channels());
 
294
    if(!sf.isNull())
263
295
      _audConv->setChannels(sf.channels());
264
 
  }  
 
296
  }
 
297
  else
 
298
  {
 
299
    if(!sf.isNull())
 
300
      _audConv = new SRCAudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY);
 
301
  }
265
302
  #endif
266
303
}
267
304
 
268
305
//void Event::read(unsigned offset, float** bpp, int channels, int nn, bool overwrite)
269
 
void Event::readAudio(unsigned offset, float** bpp, int channels, int nn, bool doSeek, bool overwrite)
 
306
//void Event::readAudio(unsigned offset, float** bpp, int channels, int nn, bool doSeek, bool overwrite)
 
307
// p3.3.33
 
308
void Event::readAudio(WavePart* part, unsigned offset, float** bpp, int channels, int nn, bool doSeek, bool overwrite)
270
309
      {
271
310
        //ev->read(offset, bpp, channels, nn, overwrite);
272
311
        //ev->readAudio(offset, bpp, channels, nn, doSeek, overwrite);
273
312
        //_sfCurFrame = ev->readAudio(_src_state, _sfCurFrame, offset, bpp, channels, nn, doSeek, overwrite);
274
 
        _sfCurFrame = ev->readAudio(_audConv, _sfCurFrame, offset, bpp, channels, nn, doSeek, overwrite);
 
313
        // p3.3.33
 
314
        ev->readAudio(part, offset, bpp, channels, nn, doSeek, overwrite);
275
315
      }
276
316
void Event::setTick(unsigned val)       { ev->setTick(val); }
277
317
unsigned Event::tick() const            { return ev->tick(); }