~ubuntu-branches/ubuntu/edgy/muse/edgy

« back to all changes in this revision

Viewing changes to muse/wave.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Kobras
  • Date: 2006-01-03 20:18:47 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20060103201847-r9poqt6y5gu9hnji
Tags: 0.7.1+0.7.2pre5-1
* New upstream version.
* Updated patches:
  + [20_allow_system_timer]
    Rediffed for 0.7.2pre5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
//=========================================================
2
2
//  MusE
3
3
//  Linux Music Editor
4
 
//  $Id: wave.cpp,v 1.19.2.7 2005/12/13 20:56:14 spamatica Exp $
 
4
//  $Id: wave.cpp,v 1.19.2.8 2005/12/28 22:17:55 spamatica Exp $
5
5
//
6
6
//  (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
7
7
//=========================================================
375
375
 
376
376
size_t SndFile::read(int srcChannels, float** dst, size_t n)
377
377
      {
378
 
      float buffer[n * sfinfo.channels];
 
378
      float *buffer = new float[n * sfinfo.channels];
 
379
      //float buffer[n * sfinfo.channels];
379
380
      size_t rn       = sf_readf_float(sf, buffer, n);
380
381
      float* src      = buffer;
381
382
      int dstChannels = sfinfo.channels;
403
404
            printf("SndFile:read channel mismatch %d -> %d\n",
404
405
               srcChannels, dstChannels);
405
406
            }
 
407
      delete buffer;
406
408
      return rn;
407
409
      }
408
410
 
418
420
size_t SndFile::write(int srcChannels, float** src, size_t n)
419
421
      {
420
422
      int dstChannels = sfinfo.channels;
421
 
      float buffer[n * dstChannels];
422
 
      float* dst      = buffer;
 
423
      //float buffer[n * dstChannels];
 
424
      float *buffer = new float[n * dstChannels];
 
425
      float *dst      = buffer;
423
426
 
424
427
      const float limitValue=0.99;
425
428
 
459
462
      else {
460
463
            printf("SndFile:write channel mismatch %d -> %d\n",
461
464
               srcChannels, dstChannels);
 
465
            delete buffer;
462
466
            return 0;
463
467
            }
464
 
      return sf_writef_float(sf, buffer, n) ;
 
468
      int nbr = sf_writef_float(sf, buffer, n) ;
 
469
      delete buffer;
 
470
      return nbr;
465
471
      }
466
472
 
467
473
//---------------------------------------------------------