[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src core/Peak.cpp traverso/songcanvas/...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src core/Peak.cpp traverso/songcanvas/... |
Date: |
Mon, 23 Apr 2007 15:02:37 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/04/23 15:02:37
Modified files:
src/core : Peak.cpp
src/traverso/songcanvas: AudioClipView.cpp
Log message:
* improved boundary checking, don't paint beyond edges.
* Peak: microview calculation assigned wrong value to readframes,
availframes,
resulting in a crash
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Peak.cpp?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.48&r2=1.49
Patches:
Index: core/Peak.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Peak.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- core/Peak.cpp 20 Apr 2007 09:45:07 -0000 1.18
+++ core/Peak.cpp 23 Apr 2007 15:02:36 -0000 1.19
@@ -307,11 +307,11 @@
audio_sample_t buf[toRead];
if ( (readFrames = m_source->file_read(m_channel, buf,
startPos, toRead)) != toRead) {
- PWARN("Unable to read nframes %d (only %d available)",
pixelcount, readFrames);
+ PWARN("Unable to read nframes %d (only %d available)",
toRead, readFrames);
if (readFrames == 0) {
- return -1;
+ return NO_PEAKDATA_FOUND;
}
- pixelcount = readFrames;
+ pixelcount = readFrames / zoomStep[zoomLevel];
}
int count = 0;
Index: traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- traverso/songcanvas/AudioClipView.cpp 23 Apr 2007 11:56:52 -0000
1.48
+++ traverso/songcanvas/AudioClipView.cpp 23 Apr 2007 15:02:36 -0000
1.49
@@ -228,6 +228,9 @@
if (pixelcount % 2) {
pixelcount += 1;
}
+ if ( (xstart + pixelcount) > m_boundingRect.width()) {
+ pixelcount = m_boundingRect.width() - xstart;
+ }
int channels = m_clip->get_channels();
bool microView = m_song->get_hzoom() > (Peak::MAX_ZOOM_USING_SOURCEFILE
- 1) ? 0 : 1;
@@ -242,6 +245,8 @@
// Load peak data for all channels, if no peakdata is returned
// for a certain Peak object, schedule it for loading.
for (int chan=0; chan < channels; chan++) {
+ memset(buffers[chan], 0, buffersize * sizeof(unsigned char));
+
Peak* peak = m_clip->get_peak_for_channel(chan);
int availpeaks = peak->calculate_peaks( buffers[chan],
microView ?
m_song->get_hzoom() : m_song->get_hzoom() + 1,
@@ -616,6 +621,7 @@
void AudioClipView::position_changed()
{
calculate_bounding_rect();
+ update();
}
void AudioClipView::load_theme_data()