суббота, 23 ноября 2013 г.
вторник, 5 ноября 2013 г.
Восстановление Arch после неудачного обновления
1. Загружаемся с boot-cd или boot-flash
2. монтируем раздел с упавшим арчем
3. делаем arch-chroot
4. переходим в /var/cache/pacman/pkg (там лежат старые пакеты)
5. делаем pacman -U ./<предыдущее ядро>
2. монтируем раздел с упавшим арчем
3. делаем arch-chroot
4. переходим в /var/cache/pacman/pkg (там лежат старые пакеты)
5. делаем pacman -U ./<предыдущее ядро>
суббота, 6 апреля 2013 г.
ALSA + JACK + PULSEAUDIO + TIMIDITY
Решил подружить всё это, что бы можно было легко пользоваться любым аудио-софтом, прием одновременно...
Вот что у меня получилось
предполагается, что PulseAudio, jackd, qjackctl и timidity уже установлены.
1. ставим pulseaudio-module-jack
2. в
load-module module-jack-sink
load-module module-jack-source
3. Открываем параметры QJackCtl и на вкладке сценариев добавляем в сценарий, выполняющийся перед запуском jackd следующее
killall pulseaudio; sleep 3; gksu alsa force-reload
это надо для того, что бы полностью освободить звуковой порт. Без этого jackd может ругаться, что hw0 уже занят
gksu - графической sudo. надо что бы перезагрузить alsa(под обычном ползователем этого сделать нельзя)
В общих настройках QJackCtl должен быть интерфейс hw:0,0 и драйвер alsa
4. удаляем из /ets/init.d файл timidity
5. Добавляем в QJackCtl сценарий, выполняющийся после запуска jackd
timidity -iA -B2,8 -Os &
таким образом мы запускаем timidity в виде демона с нужной конфигурацией
6. добавляем QJackCtl в автозагрузку и перезагружаемся
p.s. для отдельного запуска VST-плагинов есть замечательный vsthost
Вот что у меня получилось
предполагается, что PulseAudio, jackd, qjackctl и timidity уже установлены.
1. ставим pulseaudio-module-jack
2. в
/etc/pulse/default.pa
после строки #load-module module-alsa-sink даписываемload-module module-jack-sink
load-module module-jack-source
3. Открываем параметры QJackCtl и на вкладке сценариев добавляем в сценарий, выполняющийся перед запуском jackd следующее
killall pulseaudio; sleep 3; gksu alsa force-reload
это надо для того, что бы полностью освободить звуковой порт. Без этого jackd может ругаться, что hw0 уже занят
gksu - графической sudo. надо что бы перезагрузить alsa(под обычном ползователем этого сделать нельзя)
В общих настройках QJackCtl должен быть интерфейс hw:0,0 и драйвер alsa
4. удаляем из /ets/init.d файл timidity
5. Добавляем в QJackCtl сценарий, выполняющийся после запуска jackd
timidity -iA -B2,8 -Os &
таким образом мы запускаем timidity в виде демона с нужной конфигурацией
6. добавляем QJackCtl в автозагрузку и перезагружаемся
p.s. для отдельного запуска VST-плагинов есть замечательный vsthost
понедельник, 11 февраля 2013 г.
Совместное использование QML и C++(QT)
полезное место:
http://qml.ucoz.com/publ/stati_po_qml/integracija_qml_i_c/5-1-0-14
1. В файле проекта для совместной работы необходимо добавить
так как QDeclarativeView является потомком QWidget, можно там же задать и другие сфойства, например размеры окна
полезно задать
4. теперь из qml мы можем вызвать слот
класс:
http://qml.ucoz.com/publ/stati_po_qml/integracija_qml_i_c/5-1-0-14
1. В файле проекта для совместной работы необходимо добавить
QT+=declarative2. Создаем класс и наследуем его от QDeclarativeView В конструкторе: при помощи метода setSource задаем корневой qml-файл
setSource(QUrl("qrc:/TextEditor.qml"));Получаем контекст из qml и устанавливаем для него свойство, которое будет видно из qml
QDeclarativeContext *context = rootContext(); context->setContextProperty("window",this);
так как QDeclarativeView является потомком QWidget, можно там же задать и другие сфойства, например размеры окна
полезно задать
setResizeMode(QDeclarativeView::SizeRootObjectToView);3. Задаем слоты, которые будут доступны из qml
public slots: void alarm() { QMessageBox::information(0,"111","222"); }
4. теперь из qml мы можем вызвать слот
onButtonClicked: { screen.imageFile = window.alarm() }
класс:
class QmlViewer : public QDeclarativeView{ Q_OBJECT public: QmlViewer(QDeclarativeView *prnt=0) :QDeclarativeView(prnt) { setSource(QUrl("qrc:/TextEditor.qml")); QDeclarativeContext *context = rootContext(); context->setContextProperty("window",this); setResizeMode(QDeclarativeView::SizeRootObjectToView); setMinimumSize(500,400); } public slots: void alarm() { QMessageBox::information(0,"111","222"); } QString getFileName() { return QFileDialog::getOpenFileName(0,QObject::tr("Открыть файд"),"","*.jpg"); } };
Подписаться на:
Сообщения (Atom)