суббота, 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 и устанавливаем для него свойство, которое будет видно из qmlQDeclarativeContext *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)