diff --git a/ChangeLog b/ChangeLog index 2f559ad97d..4bbbfff56f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,26 @@ +2006-03-07 Tobias Doerffel + + * src/widgets/knob.cpp: + when moving mouse while having shift pressed, increase/decrease by + single steps + + * src/core/envelope_tab_widget.cpp: + use 10 KHz as filter-maximum instead of 16 KHz + + * include/track.h: + * src/core/track.cpp: + added HACK to avoid crash because of bug in Qt (< 3.3.5) when removing + track + + * src/core/config_mgr.cpp: + - use default-theme-path if theme-path from config-file doesn't exist + - add "/" to theme-path if missing + +2006-03-06 Alexey Kouznetsov + + * locale/ru.ts: + updated Russian translation + 2006-03-05 Tobias Doerffel * src/core/main_window.cpp: diff --git a/TODO b/TODO index 4e1c6d75ed..084d4d889f 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,11 @@ -to be done as soon as possible: - +- add support for panes-interface (like blender) (instead of MDI etc.) +- message when importing unsupported MIDI-file (track-count = 0) +- volume-knobs for each sample-track +- AMS-bindings - recording-functionality - show loading-vst-hint when cloning vestige-track - do not hang when saving while loading VST-plugin -- tempo-recogn. and sync of beat-sample +- tempo-recogn. and sync of beat-samples - do not quantize when importing from MIDI-file - KNOB-setValue!!! - separate GUI and data/sound-processing-code @@ -37,8 +39,6 @@ to be done as soon as possible: - ... - -to be done somewhen in the future: - effect-board -> live-fx from input - event/automation-system - chord-editor? diff --git a/configure.in b/configure.in index 382fd19bfc..093bf7ca8f 100644 --- a/configure.in +++ b/configure.in @@ -2,8 +2,8 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.50) -AC_INIT(lmms, 0.1.4-cvs20060304, tobydox/at/users/dot/sourceforge/dot/net) -AM_INIT_AUTOMAKE(lmms, 0.1.4-cvs20060304) +AC_INIT(lmms, 0.1.4-cvs20060307, tobydox/at/users/dot/sourceforge/dot/net) +AM_INIT_AUTOMAKE(lmms, 0.1.4-cvs20060307) AM_CONFIG_HEADER(config.h) diff --git a/data/locale/ru.qm b/data/locale/ru.qm index 8670553ad4..ed2f5992b7 100755 Binary files a/data/locale/ru.qm and b/data/locale/ru.qm differ diff --git a/data/locale/ru.ts b/data/locale/ru.ts index 5f943ac29c..82cd71a2cc 100755 --- a/data/locale/ru.ts +++ b/data/locale/ru.ts @@ -410,7 +410,7 @@ http://lmms.sourceforge.net Direction: - Направление: + Направление: arpeggio direction = none = no arpeggio @@ -554,11 +554,27 @@ http://lmms.sourceforge.net DIRECTION: - НАПРАВЛЕНИЕ: + НАПРАВЛЕНИЕ: SORT-MODE - СОРТИРОВАТЬ + СОРТИРОВАТЬ + + + Mode: + Режим: + + + Free + + + + Sort + + + + Sync + @@ -679,7 +695,11 @@ http://lmms.sourceforge.net Beat+Bassline Editor - Редактор ритма/басов + Редактор ритма/басов + + + Beat+Baseline Editor + Редактор ритма/лейтмотива @@ -698,14 +718,65 @@ http://lmms.sourceforge.net Open in Beat+Bassline-Editor - Открыть в редакторе ритма/басов + Открыть в редакторе ритма/басов + + + Open in Beat+Baseline-Editor + Открыть в редакторе ритма/лейтмотива bbTrack Beat/Bassline %1 - Ритм/басы %1 + Ритм/басы %1 + + + Beat/Baseline %1 + Лейтмотив %1 + + + + bitInvader + + Samplelength + + + + Sample Length + Длительность образца + + + Click here if you want a sine-wave for current oscillator. + Сгенерировать гармонический (синусоидальный) сигнал. + + + Click here if you want a triangle-wave for current oscillator. + Сгенерировать треугольный сигнал. + + + Click here if you want a saw-wave for current oscillator. + Сгенерировать пилообразный сигнал. + + + Click here if you want a square-wave for current oscillator. + Сгенерировать меандр. + + + Click here if you want a white-noise for current oscillator. + Сгенерировать белый шум. + + + Click here if you want a user-defined wave-shape for current oscillator. + Задать форму сигнала из файла. + + + Click here to smooth waveform. + Щёлкните чтобы сгладить форму сигнала. + + + Draw your own waveform hereby dragging your mouse onto this graph + Здесь вы можете рисовать собственный сигнал @@ -1283,7 +1354,7 @@ LMMS-working-directory. Run the setup-wizard now? Q/Resonance: - Усиление + Усиление: Use this knob for setting Q/Resonance for the selected filter. Q/Resonance tells the filter, how much it should amplify frequencies near Cutoff-frequency. @@ -1291,7 +1362,7 @@ LMMS-working-directory. Run the setup-wizard now? Q/Resonance - Усиление + Усиление 2x LowPass @@ -1479,7 +1550,256 @@ Make sure, you have write access to the selected file/device! Setting up main-window and workspace... - Создаю рабочее пространство... + Создаю рабочее пространство... + + + Creating new song... + Создаю композицию... + + + Creating GUI... + Создаю GUI... + + + Show/Hide EffectBoard + Показать/скрыть панель эффектов + + + &New + &Новый + + + &Open... + &Открыть... + + + &Save + &Сохранить + + + Save &As... + Сохранить &как... + + + E&xport + &Экспорт + + + &Quit + &Выйти + + + Help + Справка + + + About + О программе + + + &Help + &О программе + + + Show/Hide Piano-Roll + Показать/скрыть синтезатор + + + What's this? + Что это? + + + Show/Hide Beat+Bassline Editor + Показать/скрыть редактор ритма/басов + + + By pressing this button, you can show or hide the Beat+Bassline Editor. The Beat+Bassline Editor is needed for setting beats, opening, adding and removing channels, cutting, copying and pasting beat- and bassline-patterns and other things like that. + По нажатию этой кнопки запускается редактор ритма/басов. Он необходим для установки ритма, добавления и удаления каналов, вырезания, копирования и вставки шаблонов ритма и басов и т. п. + + + Show/Hide Song-Editor + Показать/скрыть редактор мелодии + + + By pressing this button, you can show or hide the Song-Editor. With the Song-Editor you can edit the song and set when and which track should be played. You can also insert and move samples (e.g. rap-samples) directly in the playlist. + По нажатию этой кнопки запускается редактор мелодии. С его помощью вы можеет редактировать композицию, устанавливать время воспроизведения для всех дорожек. Также вы можете вставлять и передвигать образцы непосредственно в списке воспроизведения. + + + My samples + Мои образцы + + + My presets + Мои предустановки + + + My projects + Мои проекты + + + Loading song... + Загружаю композицию... + + + &Settings + &Настройка + + + Show setup wizard + Запустить мастер настройки + + + MultiMedia Project (*.xml) + Мультимедийный проект (*.xml) + + + Show/Hide Project notes + Показать/скрыть комментарий + + + By pressing this button, you can show or hide the project notes window. In this window you can put down your project notes. + Эта кнопка показывает/прячет окно с заметками. В этом окне вы можете помещать любые комментарии к своей композиции. + + + By pressing this button, you can show or hide the EffectBoard. The EffectBoard is a very powerful tool for managing effects for your song. You can insert effects into different effect-channels. + Эта кнопка показывает/прячет панель эффектов. Эта панель является мощным инструментом управления эффектами, которые Вы можете вставлять в особый канал (канал эффектов). + + + Create new project + Создать новый проект + + + Ctrl+N + Ctrl+N + + + Open existing project + Открыть существующий проект + + + Ctrl+O + Ctrl+O + + + Save current project + Сохранить текущий проект + + + Export current project + Экспортировать проект в звуковой файл + + + By pressing this button, you can show or hide the Piano-Roll. With the help of the Piano-Roll you can edit melody-patterns in an easy way. + По нажатию этой кнопки запускается синтезатор LMMS. С его помощью вы можете легко редактировать шблоны мелодии. + + + &Project + &Проект + + + Open project + Открыть проект + + + Save project + Сохранить проект + + + Song management + Управление композициями + + + Import file + Импорт файла + + + My home + Домашний каталог + + + Root directory + Корневой каталог + + + Show settings dialog + Показать окно настройки + + + Help not available + Справка недоступна + + + Currently there's no help available in LMMS. +Please visit http://lmms.sourceforge.net and click on "Documentation". +There hopefully you'll find the stuff you want to know... + Пока что справка для LMMS не написана. +Зайдите на сайт http://lmms.sourceforge.net и пройдите по ссылке "Documentation". +Надеемся, Вы найдёте там нужные материалы... + + + Show/hide Beat+Bassline Editor + Показать/скрыть редактор ритма/басов + + + Show/hide Piano-Roll + Показать/скрыть синтезатор + + + Show/hide Song-Editor + Показать/скрыть редактор мелодии + + + By pressing this button, you can show or hide the Song-Editor. With the help of the Song-Editor you can edit song-playlist and specify when which track should be played. You can also insert and move samples (e.g. rap-samples) directly into the playlist. + По нажатию этой кнопки запускается редактор мелодии. С его помощью вы можеет редактировать композицию, устанавливать время воспроизведения для всех дорожек. Также вы можете вставлять и передвигать образцы непосредственно в списке воспроизведения. + + + Show/hide EffectBoard + Показать/скрыть панель эффектов + + + Show/hide project notes + Показать/скрыть заметки к проекту + + + MultiMedia Project (*.mmp *.xml) + Мультимедийный проект (*.mmp *.xml) + + + MultiMedia Project (*.mmp);;MultiMedia Project Template (*.mpt) + Мультимедийный проект (*.mmp);;Шаблон мультимедийного проекта (*.mpt) + + + Currently there's no help available in LMMS. +Please visit http://wiki.mindrules.net for documentation on LMMS. + Пока что справка для LMMS не написана. +Вероятно, Вы сможете найти нужные материалы на http://wiki.mindrules.net. + + + + mainWindow + + My projects + Мои проекты + + + My samples + Мои образцы + + + My presets + Мои предустановки + + + My home + Домашний каталог + + + Root directory + Корневой каталог + + + Loading song... + Загружаю композицию... Creating new song... @@ -1487,11 +1807,59 @@ Make sure, you have write access to the selected file/device! Creating GUI... - Создаю GUI... + Создаю графический интерфейс... - Show/Hide EffectBoard - Показать/скрыть панель эффектов + Create new project + Создать новый проект + + + Open existing project + Открыть существующий проект + + + Save current project + Сохранить текущий проект + + + Export current project + Экспортировать проект в звуковой файл + + + Show/hide Beat+Bassline Editor + Показать/скрыть редактор ритма/басов + + + By pressing this button, you can show or hide the Beat+Bassline Editor. The Beat+Bassline Editor is needed for setting beats, opening, adding and removing channels, cutting, copying and pasting beat- and bassline-patterns and other things like that. + По нажатию этой кнопки запускается редактор ритма/басов. Он необходим для установки ритма, добавления и удаления каналов, вырезания, копирования и вставки шаблонов ритма и басов и т. п. + + + Show/hide Piano-Roll + Показать/скрыть синтезатор + + + By pressing this button, you can show or hide the Piano-Roll. With the help of the Piano-Roll you can edit melody-patterns in an easy way. + По нажатию этой кнопки запускается синтезатор LMMS. С его помощью вы можете легко редактировать шблоны мелодии. + + + Show/hide Song-Editor + Показать/скрыть редактор мелодии + + + By pressing this button, you can show or hide the Song-Editor. With the help of the Song-Editor you can edit song-playlist and specify when which track should be played. You can also insert and move samples (e.g. rap-samples) directly into the playlist. + По нажатию этой кнопки запускается редактор мелодии. С его помощью вы можеет редактировать композицию, устанавливать время воспроизведения для всех дорожек. Также вы можете вставлять и передвигать образцы непосредственно в списке воспроизведения. + + + Show/hide project notes + Показать/скрыть заметки к проекту + + + By pressing this button, you can show or hide the project notes window. In this window you can put down your project notes. + Эта кнопка показывает/прячет окно с заметками. В этом окне вы можете помещать любые комментарии к своей композиции. + + + &Project + &Проект &New @@ -1509,6 +1877,10 @@ Make sure, you have write access to the selected file/device! Save &As... Сохранить &как... + + Import file + Импорт файла + E&xport &Экспорт @@ -1517,145 +1889,53 @@ Make sure, you have write access to the selected file/device! &Quit &Выйти - - Help - Справка - - - About - О программе - - - &Help - &О программе - - - Show/Hide Piano-Roll - Показать/скрыть синтезатор - - - What's this? - Что это? - - - Show/Hide Beat+Bassline Editor - Показать/скрыть редактор ритма/басов - - - By pressing this button, you can show or hide the Beat+Bassline Editor. The Beat+Bassline Editor is needed for setting beats, opening, adding and removing channels, cutting, copying and pasting beat- and bassline-patterns and other things like that. - По нажатию этой кнопки запускается редактор ритма/басов. Он необходим для установки ритма, добавления и удаления каналов, вырезания, копирования и вставки шаблонов ритма и басов и т. п. - - - Show/Hide Song-Editor - Показать/скрыть редактор мелодии - - - By pressing this button, you can show or hide the Song-Editor. With the Song-Editor you can edit the song and set when and which track should be played. You can also insert and move samples (e.g. rap-samples) directly in the playlist. - По нажатию этой кнопки запускается редактор мелодии. С его помощью вы можеет редактировать композицию, устанавливать время воспроизведения для всех дорожек. Также вы можете вставлять и передвигать образцы непосредственно в списке воспроизведения. - - - My samples - Мои образцы - - - My presets - Мои предустановки - - - My projects - Мои проекты - - - Loading song... - Загружаю композицию... - &Settings &Настройка - - Show setup wizard - Запустить мастер настройки - - - MultiMedia Project (*.xml) - Мультимедийный проект (*.xml) - - - Show/Hide Project notes - Показать/скрыть комментарий - - - By pressing this button, you can show or hide the project notes window. In this window you can put down your project notes. - Эта кнопка показывает/прячет окно с заметками. В этом окне вы можете помещать любые комментарии к своей композиции. - - - By pressing this button, you can show or hide the EffectBoard. The EffectBoard is a very powerful tool for managing effects for your song. You can insert effects into different effect-channels. - Эта кнопка показывает/прячет панель эффектов. Эта панель является мощным инструментом управления эффектами, которые Вы можете вставлять в особый канал (канал эффектов). - - - Create new project - Создать новый проект - - - Ctrl+N - Ctrl+N - - - Open existing project - Открыть существующий проект - - - Ctrl+O - Ctrl+O - - - Save current project - Сохранить текущий проект - - - Export current project - Экспортировать проект в звуковой файл - - - By pressing this button, you can show or hide the Piano-Roll. With the help of the Piano-Roll you can edit melody-patterns in an easy way. - По нажатию этой кнопки запускается синтезатор LMMS. С его помощью вы можете легко редактировать шблоны мелодии. - - - &Project - &Проект - - - Open project - Открыть проект - - - Save project - Сохранить проект - - - Song management - Управление композициями - - - Import file - Импорт файла - - - My home - Домашний каталог - - - Root directory - Корневой каталог - Show settings dialog Показать окно настройки + + Show setup wizard + Запустить мастер настройки + + + &Help + &Справка + + + Help + Справка + + + What's this? + Что это? + + + About + О программе + LMMS %1 - + LMMS %1 + + + Open project + Открыть проект + + + MultiMedia Project (*.mmp *.xml) + Мультимедийный проект (*.mmp *.xml) + + + Save project + Сохранить проект + + + MultiMedia Project (*.mmp);;MultiMedia Project Template (*.mpt) + Мультимедийный проект (*.mmp);;Шаблон мультимедийного проекта (*.mpt) Help not available @@ -1663,50 +1943,22 @@ Make sure, you have write access to the selected file/device! Currently there's no help available in LMMS. -Please visit http://lmms.sourceforge.net and click on "Documentation". -There hopefully you'll find the stuff you want to know... - Пока что справка для LMMS не написана. -Зайдите на сайт http://lmms.sourceforge.net и пройдите по ссылке "Documentation". -Надеемся, Вы найдёте там нужные материалы... - - - Show/hide Beat+Bassline Editor - Показать/скрыть редактор ритма/басов - - - Show/hide Piano-Roll - Показать/скрыть синтезатор - - - Show/hide Song-Editor - Показать/скрыть редактор мелодии - - - By pressing this button, you can show or hide the Song-Editor. With the help of the Song-Editor you can edit song-playlist and specify when which track should be played. You can also insert and move samples (e.g. rap-samples) directly into the playlist. - По нажатию этой кнопки запускается редактор мелодии. С его помощью вы можеет редактировать композицию, устанавливать время воспроизведения для всех дорожек. Также вы можете вставлять и передвигать образцы непосредственно в списке воспроизведения. - - - Show/hide EffectBoard - Показать/скрыть панель эффектов - - - Show/hide project notes - Показать/скрыть заметки к проекту - - - MultiMedia Project (*.mmp *.xml) - Мультимедийный проект (*.mmp *.xml) - - - MultiMedia Project (*.mmp);;MultiMedia Project Template (*.mpt) - Мультимедийный проект (*.mmp);;Шаблон мультимедийного проекта (*.mpt) - - - Currently there's no help available in LMMS. Please visit http://wiki.mindrules.net for documentation on LMMS. Пока что справка для LMMS не написана. Вероятно, Вы сможете найти нужные материалы на http://wiki.mindrules.net. + + Setting up main-window and workspace... + Создаю рабочее пространство... + + + Show/hide Beat+Baseline Editor + Показать/скрыть редактор ритма/лейтмотива + + + By pressing this button, you can show or hide the Beat+Baseline Editor. The Beat+Baseline Editor is needed for creating beats, opening, adding and removing channels, cutting, copying and pasting beat- and baseline-patterns and other things like that. + По нажатию этой кнопки запускается редактор ритма/лейтмотива произведения. Он необходим для установки ритма, добавления и удаления каналов, вырезания, копирования и вставки шаблонов и т. п. + midiClient @@ -1748,11 +2000,11 @@ Please visit http://wiki.mindrules.net for documentation on LMMS. RECEIVE MIDI-EVENTS - ПРИНИМАТЬ СОБЫТИЯ MIDI + ПРИНИМАТЬ СОБЫТИЯ MIDI SEND MIDI-EVENTS - ОТПРАВЛЯТЬ СОБЫТИЯ MIDI + ОТПРАВЛЯТЬ СОБЫТИЯ MIDI SEND RECEIVED MIDI-EVENTS @@ -1766,6 +2018,14 @@ Please visit http://wiki.mindrules.net for documentation on LMMS. MIDI-devices to send MIDI-events to Устройства MIDI, на которые нужно отправлять события + + Receive MIDI-events + Принимать события MIDI + + + Send MIDI-events + Отправлять события MIDI + mixer @@ -1786,6 +2046,60 @@ Please visit http://wiki.mindrules.net for documentation on LMMS. Ошибка загрузки модуля "%1"! + + nameLabel + + Select icon + Выбор пиктограммы + + + All images (*.png *.jpg *.jpeg *.gif *.bmp) + Изображения (*.png *.jpg *.jpeg *.gif *.bmp) + + + + organicInstrument + + Osc %1 waveform + Форма сигнала для генератора %1 + + + Osc %1 waveform: + Форма сигнала для генератора %1: + + + Osc %1 volume + Громкость генератора %1 + + + Osc %1 volume: + Громкость генератора %1: + + + Osc %1 panning + Стереобаланс для генератора %1 + + + Osc %1 panning: + Стереобаланс для генератора %1: + + + Osc %1 fine detuning left + Расстройка левого канала генератора %1 + + + Osc %1 fine detuning left: + Расстройка левого канала генератора %1: + + + cents + центов + + + FX1 + + + pattern @@ -2000,6 +2314,10 @@ use mouse wheel to set volume of a step All selected notes were copied to the clipboard. Все выделенные ноты скопированы в буфер обмена. + + Last note + Вручную + pluckedStringSynth @@ -2032,7 +2350,7 @@ use mouse wheel to set volume of a step You can drag an instrument-plugin into either the Song-Editor, the Beat+Bassline Editor or just into a channel-window or on the corresponding channel-button. - Вы можете переносить нужные вам инструменты из этой панели в редактор мелодии или в редактор ритма/басов. Отпускайте кнопку мыши прямо в окне, чтобы создать новый канал, или на кнопке нужного канала для замены типа канала на выбранный инструмент. + Вы можете переносить нужные вам инструменты из этой панели в редактор мелодии или в редактор ритма/басов. Отпускайте кнопку мыши прямо в окне, чтобы создать новый канал, или на кнопке нужного канала для замены типа канала на выбранный инструмент. cheap synthesis of guitar/harp-like sounds @@ -2062,6 +2380,18 @@ use mouse wheel to set volume of a step VST-host for using VST(i)-plugins within LMMS Поддержка модулей VST(i) в LMMS + + Rough & Dirty Wavetable Synthesizer. + Тяп-ляп синтезатор сигнала. + + + You can drag an instrument-plugin into either the Song-Editor, the Beat+Baseline Editor or just into a channel-window or on the corresponding channel-button. + Вы можете переносить нужные вам инструменты из этой панели в редактор мелодии или в редактор лейтмотива. Отпускайте кнопку мыши прямо в окне, чтобы создать новый канал, или на кнопке нужного канала для замены типа канала на выбранный инструмент. + + + Additive Synthesizer for organ-like sounds + Синтезатор звуков вроде органа + projectNotes @@ -2311,7 +2641,7 @@ use mouse wheel to set volume of a step FRAMES: %1 LATENCY: %2 ms - ФРАГМЕНТОВ: %1 + ФРАГМЕНТОВ: %1 ОТКЛИК: %2 мс @@ -2358,6 +2688,36 @@ LATENCY: %2 ms Do not show message after closing this dialog Не показывать предупреждения после закрытия этого окна + + Performance settings + Параметры производительности + + + UI effects vs. performance + Визуальные эффекты/производительность + + + Disable channel activity indicators + Отключить индикаторы активности каналов + + + Only press keys on channel-piano manually + Кнопки на "рояле" нажимаются только вручную + + + Frames: %1 +Latency: %2 ms + Фрагментов: %1 +Отклик: %2 + + + Artwork directory + Каталог с элементами оформления + + + Choose artwork-theme directory + Выбор каталога с темой оформления для LMMS + setupWidget @@ -2595,19 +2955,19 @@ Please make sure you have at least read-access to the file and try again. Insert bar (Shift+Insert) - Вставить такт (Shift + Insert) + Вставить такт (Shift + Insert) Remove bar (Shift+Delete) - Удалить такт (Shift + Delete) + Удалить такт (Shift + Delete) If you click here, a bar will be inserted at the current bar. - При нажатии на эту кнопку, в начало композиции вставится один такт. + При нажатии на эту кнопку, в начало композиции вставится один такт. If you click here, the current bar will be removed. - При нажатии на эту кнопку, из начала композиции удалится один такт. + При нажатии на эту кнопку, из начала композиции удалится один такт. master volume @@ -2651,6 +3011,14 @@ Please make sure you have write-access to the file and try again. The project %1 was not saved! Проект %1 не сохранён! + + Draw mode + Режим рисования + + + Edit mode (select and move) + Правка (выделение/перемещение) + soundGenerator @@ -2878,6 +3246,18 @@ Please make sure you have write-permission to the file and the directory contain %1:%2 (%3:%4 to %5:%6) %1:%2 (от %3:%4 до %5:%6) + + Hint + Подсказка + + + Press <Ctrl> for free positioning. + Для свободного перемещения нажмите <Ctrl>. + + + Press <Ctrl> for free resizing. + Для свободного перемещения нажмите <Ctrl>. + trackOperationsWidget @@ -2965,7 +3345,7 @@ right click = mute all other tracks (solo) cents - % + центов degrees diff --git a/include/sample_buffer.h b/include/sample_buffer.h index e4e81168cd..00d574c81d 100644 --- a/include/sample_buffer.h +++ b/include/sample_buffer.h @@ -83,8 +83,14 @@ public: const bool _looped = FALSE, void * * _resampling_data = NULL ); - void FASTCALL drawWaves( QPainter & _p, QRect _dr, + void FASTCALL visualize( QPainter & _p, const QRect & _dr, + const QRect & _clip, drawMethods _dm = LINE_CONNECT ); + inline void visualize( QPainter & _p, const QRect & _dr, + drawMethods _dm = LINE_CONNECT ) + { + visualize( _p, _dr, _dr, _dm ); + } inline const QString & audioFile( void ) const { diff --git a/include/track.h b/include/track.h index d83bbcb9db..d0ef77eb18 100644 --- a/include/track.h +++ b/include/track.h @@ -239,6 +239,7 @@ protected: private slots: void cloneTrack( void ); void removeTrack( void ); + void removeTrackTimer( void ); void muteBtnRightClicked( void ); diff --git a/plugins/audio_file_processor/audio_file_processor.cpp b/plugins/audio_file_processor/audio_file_processor.cpp index 80db32c99c..db91980a85 100644 --- a/plugins/audio_file_processor/audio_file_processor.cpp +++ b/plugins/audio_file_processor/audio_file_processor.cpp @@ -552,7 +552,7 @@ void audioFileProcessor::sampleUpdated( void ) QPainter p( &m_graph ); #endif p.setPen( QColor( 64, 255, 160 ) ); - m_sampleBuffer.drawWaves( p, QRect( 2, 2, m_graph.width() - 4, + m_sampleBuffer.visualize( p, QRect( 2, 2, m_graph.width() - 4, m_graph.height() - 4 ), m_drawMethod ); update(); diff --git a/src/core/config_mgr.cpp b/src/core/config_mgr.cpp index 84383d7160..20e953f4fd 100644 --- a/src/core/config_mgr.cpp +++ b/src/core/config_mgr.cpp @@ -809,6 +809,14 @@ bool configManager::loadConfigFile( void ) if( value( "paths", "artwork" ) != "" ) { m_artworkDir = value( "paths", "artwork" ); + if( QDir( m_artworkDir ).exists() == FALSE ) + { + m_artworkDir = m_dataDir + DEFAULT_THEME_PATH; + } + if( m_artworkDir.right( 1 ) != QDir::separator() ) + { + m_artworkDir += QDir::separator(); + } } m_workingDir = value( "paths", "workingdir" ); m_vstDir = value( "paths", "vstdir" ); diff --git a/src/core/envelope_tab_widget.cpp b/src/core/envelope_tab_widget.cpp index e532c01073..337e043b51 100644 --- a/src/core/envelope_tab_widget.cpp +++ b/src/core/envelope_tab_widget.cpp @@ -178,7 +178,7 @@ envelopeTabWidget::envelopeTabWidget( channelTrack * _channel_track ) : m_filterCutKnob = new knob( knobBright_26, m_filterGroupBox, tr( "cutoff-frequency" ), eng() ); m_filterCutKnob->setLabel( tr( "CUTOFF" ) ); - m_filterCutKnob->setRange( 0.0, 16000.0, 1.0 ); + m_filterCutKnob->setRange( 0.0, 10000.0, 1.0 ); m_filterCutKnob->move( 140, 18 ); m_filterCutKnob->setInitValue( 16000.0 ); m_filterCutKnob->setHintText( tr( "cutoff-frequency:" ) + " ", " " + diff --git a/src/core/track.cpp b/src/core/track.cpp index dc720214ec..662813d93e 100644 --- a/src/core/track.cpp +++ b/src/core/track.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #endif @@ -976,6 +977,19 @@ void trackOperationsWidget::cloneTrack( void ) void trackOperationsWidget::removeTrack( void ) +{ +#ifdef QT3 + QTimer::singleShot( 10, this, SLOT( removeTrackTimer() ) ); +#else +#warning fixme + removeTrackTimer(); +#endif +} + + + + +void trackOperationsWidget::removeTrackTimer( void ) { m_trackWidget->getTrack()->getTrackContainer()->removeTrack( m_trackWidget->getTrack() ); diff --git a/src/lib/sample_buffer.cpp b/src/lib/sample_buffer.cpp index 5d6ad95335..a9539bc80c 100644 --- a/src/lib/sample_buffer.cpp +++ b/src/lib/sample_buffer.cpp @@ -862,9 +862,10 @@ bool FASTCALL sampleBuffer::play( sampleFrame * _ab, -void sampleBuffer::drawWaves( QPainter & _p, QRect _dr, drawMethods _dm ) +void sampleBuffer::visualize( QPainter & _p, const QRect & _dr, + const QRect & _clip, drawMethods _dm ) { -// _p.setClipRect( _dr ); +// _p.setClipRect( _clip ); // _p.setPen( QColor( 0x22, 0xFF, 0x44 ) ); //_p.setPen( QColor( 64, 224, 160 ) ); #ifdef QT4 @@ -877,9 +878,11 @@ void sampleBuffer::drawWaves( QPainter & _p, QRect _dr, drawMethods _dm ) const Uint16 y_base = h / 2 + _dr.y(); const float y_space = h / 2; + const QRect isect = _dr.intersect( _clip ); + if( m_data == NULL || m_frames == 0 ) { - _p.drawLine( _dr.x(), y_base, _dr.x() + w, y_base ); + _p.drawLine( isect.x(), y_base, isect.right(), y_base ); return; } else if( _dm == LINE_CONNECT ) @@ -890,8 +893,8 @@ void sampleBuffer::drawWaves( QPainter & _p, QRect _dr, drawMethods _dm ) const float fpp = tMax( tMin( m_frames / (float)w, 20.0f ), 1.0f ); - - for( float frame = 0; frame < m_frames; frame += fpp ) + const float fmax = tMin( m_frames, isect.right() * fpp ); + for( float frame = fpp * _clip.x(); frame < fmax; frame += fpp ) { const float x = frame*w / m_frames + _dr.x(); for( ch_cnt_t chnl = 0; chnl < DEFAULT_CHANNELS; @@ -906,21 +909,25 @@ void sampleBuffer::drawWaves( QPainter & _p, QRect _dr, drawMethods _dm ) old_x = x; } #else - int old_x = _dr.x(); int old_y[DEFAULT_CHANNELS] = { y_base, y_base }; const f_cnt_t fpp = tMax( tMin( m_frames / w, 20 ), 1 ); - + const f_cnt_t fbase = m_frames * _clip.x() / _clip.width(); + const f_cnt_t fmax = tMin( m_frames, + _clip.width() * fpp ); + int old_x = _clip.x(); + //printf("%d\n", fmax ); for( f_cnt_t frame = 0; frame < m_frames; frame += fpp ) { - const int x = static_cast( frame / - (float) m_frames * w ) + - _dr.x(); - for( ch_cnt_t chnl = 0; chnl < DEFAULT_CHANNELS; ++chnl ) + const int x = _dr.x() + static_cast( frame / + (float) m_frames * _dr.width() ); + for( ch_cnt_t chnl = 0; chnl < DEFAULT_CHANNELS; + ++chnl ) { const Uint16 y = y_base + - static_cast( m_data[frame][chnl] * y_space ); + static_cast( m_data[frame][chnl] * + y_space ); _p.drawLine( old_x, old_y[chnl], x, y ); old_y[chnl] = y; } @@ -934,7 +941,8 @@ void sampleBuffer::drawWaves( QPainter & _p, QRect _dr, drawMethods _dm ) for( f_cnt_t frame = 0; frame < m_frames; ++frame ) { const int x = frame * w / m_frames + _dr.x(); - for( ch_cnt_t chnl = 0; chnl < DEFAULT_CHANNELS; ++chnl ) + for( ch_cnt_t chnl = 0; chnl < DEFAULT_CHANNELS; + ++chnl ) { _p.drawPoint( x, y_base + static_cast( m_data[frame][chnl] * y_space ) ); diff --git a/src/tracks/sample_track.cpp b/src/tracks/sample_track.cpp index 893a381bae..360bd09216 100644 --- a/src/tracks/sample_track.cpp +++ b/src/tracks/sample_track.cpp @@ -184,17 +184,18 @@ void sampleTCO::mouseDoubleClickEvent( QMouseEvent * ) -void sampleTCO::paintEvent( QPaintEvent * ) +void sampleTCO::paintEvent( QPaintEvent * _pe ) { #ifdef QT4 QPainter p( this ); // TODO: set according brush/pen for gradient! - p.fillRect( rect(), QColor( 64, 64, 64 ) ); + p.fillRect( _pe->rect(), QColor( 64, 64, 64 ) ); #else - // create pixmap for whole widget - QPixmap pm( size() ); + // create pixmap for our widget + QPixmap pm( _pe->rect().size() ); // and a painter for it QPainter p( &pm ); + p.translate( -_pe->rect().x(), -_pe->rect().y() ); for( int y = 1; y < height() - 1; ++y ) { @@ -225,14 +226,14 @@ void sampleTCO::paintEvent( QPaintEvent * ) tMax( static_cast( getSampleLength() * pixelsPerTact() / 64 ), 1 ), height() - 4 ); p.setClipRect( QRect( 1, 1, width() - 2, height() - 2 ) ); - m_sampleBuffer.drawWaves( p, r ); + m_sampleBuffer.visualize( p, r, _pe->rect() ); if( r.width() < width() - 1 ) { p.drawLine( r.x() + r.width(), r.y() + r.height() / 2, width() - 2, r.y() + r.height() / 2 ); } #ifndef QT4 - bitBlt( this, rect().topLeft(), &pm ); + bitBlt( this, _pe->rect().topLeft(), &pm ); #endif } diff --git a/src/widgets/knob.cpp b/src/widgets/knob.cpp index b7452a0ddf..5e2db4c402 100644 --- a/src/widgets/knob.cpp +++ b/src/widgets/knob.cpp @@ -288,6 +288,10 @@ float knob::getValue( const QPoint & _p ) } return( new_value ); } + if( eng()->getMainWindow()->isShiftPressed() ) + { + return( ( _p.y() - m_origMousePos.y() ) * step() ); + } return( ( _p.y() - m_origMousePos.y() ) * m_pageSize ); }