/[svn]/linuxsampler/trunk/src/drivers/audio/AudioChannel.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/drivers/audio/AudioChannel.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 361 by schoenebeck, Wed Feb 9 01:22:18 2005 UTC revision 1001 by schoenebeck, Wed Dec 27 16:17:08 2006 UTC
# Line 3  Line 3 
3   *   LinuxSampler - modular, streaming capable sampler                     *   *   LinuxSampler - modular, streaming capable sampler                     *
4   *                                                                         *   *                                                                         *
5   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *
6     *   Copyright (C) 2005, 2006 Christian Schoenebeck                        *
7   *                                                                         *   *                                                                         *
8   *   This program is free software; you can redistribute it and/or modify  *   *   This program is free software; you can redistribute it and/or modify  *
9   *   it under the terms of the GNU General Public License as published by  *   *   it under the terms of the GNU General Public License as published by  *
# Line 104  namespace LinuxSampler { Line 105  namespace LinuxSampler {
105          if (!UsesExternalBuffer) free(pBuffer);          if (!UsesExternalBuffer) free(pBuffer);
106      }      }
107    
108        /**
109         * Copies audio data (unmodified) from this AudioChannel to the given
110         * destination AudioChannel.
111         *
112         * @param pDst    - destination channel
113         * @param Samples - amount of sample points to be copied
114         */
115        void AudioChannel::CopyTo(AudioChannel* pDst, const uint Samples) {
116            memcpy(pDst->Buffer(), Buffer(), Samples);
117        }
118    
119        /**
120         * Copies audio data from this AudioChannel to the given destination
121         * AudioChannel and applies the given volume coefficient to the
122         * destination audio signal.
123         *
124         * @param pDst    - destination channel
125         * @param Samples - amount of sample points to be copied
126         * @param fLevel  - volume coefficient to be applied
127         */
128        void AudioChannel::CopyTo(AudioChannel* pDst, const uint Samples, const float fLevel) {
129            if (fLevel == 1.0f) CopyTo(pDst, Samples);
130            else {
131                float* pSrcBuf = Buffer();
132                float* pDstBuf = pDst->Buffer();
133                for (int i = 0; i < Samples; i++)
134                    pDstBuf[i] = pSrcBuf[i] * fLevel;
135            }
136        }
137    
138      std::map<String,DeviceRuntimeParameter*> AudioChannel::ChannelParameters() {      std::map<String,DeviceRuntimeParameter*> AudioChannel::ChannelParameters() {
139          return Parameters;          return Parameters;
140      }      }

Legend:
Removed from v.361  
changed lines
  Added in v.1001

  ViewVC Help
Powered by ViewVC