Иван Четчасов, Наоборот, если пишете ядро, зарускайте сборщик БЕЗ библиотек, вообще без каких лобо библиотек. А линкеру нужно сказать, чтобы делал бинарный файл с нужными смещениями.
Но да, этому нужно посвятить немного времени. Кроме линкера нужно будет освоить еще и передачу параметров в функции и обратно (часть через регистры, часть по стеку, часть по памяти)...
Зато потом будет на порядко легче.
Иван Четчасов, Заведите область памяти, где будете держать координаты курсора, курсор отрисовывается прямоугольником в несколько пикселей, пусть будет 16х16. и держите начало координат этого прямоугольника.
1) Скопировать прямоугольник из видеобуфера на месте курсора и запомнить его
2) Этом же месте нарисовать курсор
---
3) Когда курсор перемещен, скопировать обратно запомненный буфер из 1)
4) Посчитать следующие координаты курсора и на пункт 1)
PS. Ну а по коду - если делаете операционку, что похвально (!), то лучше ее делать на языке высокого уровня, и делать небольшие вставки на ассемблере под нужную архитектуру.
PPS... Что-то пока не вижу таблиц прерываний, да и вообще таблиц с ресурсами...
Что касается копирования, то чем его меньше, то лучше. Рекомендую прочитать, реализовать в алгоритме и применять, везде, где получится (но без фанатизма) https://ru.wikipedia.org/wiki/Zero-copy
Zero-copy сейчас используется очень во многих продуктах: сетевой стек в линуксе, gstreamer, драйвера video, v4l2 и прочей хрени типа драйверов и ПО...
Иван Четчасов, Значит нужно где-то держать коррдинаты и идентификаторы окон (а с ними еще и атрибуты окна, типа модальности, програчности и прочей хрени), и если программа или API попросят перерисовать нужное окно, то его и перерисовывать.
1) Поменяйте сложность вопроса. Это не поврос запредельной сложности.
2) Пропишите тег операционной системы.
3) Смотрите логи ядра, если карточка постоянно переключает скорости (о чем мождет говорить "мигание" ), то проверьте кабель и розетку.
4) Вообще-то лампочки мигают, как в драйвере задано, но могут и автоматически...
Да..... Что мы здесь делаем? И самое главное - зачем?
Сначала получаем int из цикла, потом зачем-то переводим в строку бинарного вида, потом из строки пытаемся получить (тада!!!!) строку!
Сравниваем в ифе строки (тада!!!!).
Дальше вообще какая-то "магия" строк с конкатенацией...
I.CaR Soft, Блиин... Вот интересно...
1) Сколько стоит этот терминал? Сам работаю в области Digital Signage, и представляю, сколько эта штука стоит.
2) Окупает ли окирпичивание девайса отверткой стоимость оплаты консультации ТП?
3) Для связи с ТП предполагаемого противника и решения вопросов доступа к БИОС есть манагеры, они знают вражьи языки, правильные слова, и должны подобрать кувалду к этому орешку.
Ну, и если дирекции все равно, окирпичен девайс или нет, тогда отвертка и желтая изолента рулят.
Ну и последнее, не проще ли просто заменить комп в девайсе?
Подозреваю, что Вы не только ножки погнули, а еще и процессор потрескали, когда кулер на него ставили....
PS... Раз в месяц вопрос про смену пасты и кулера - слабоумие и отвага!
Нет, gstreamer не создает никаких устройств, как и в случае v4l2loopback.
Их нужно создавать самостоятельно.
Gstreamer может взять файл/поток/сетевой-поток, один-два или мтого, разделить или соединить видео-аудио, смикшировать и выдать это куда-то еще. Например взять mp4, разделить видео и аудио, отдельно с каждым потоком аудио и видео как-то преобразовать (дублировать и еще раз преобразовать) и выдать на устройство/сеть/файл/протокол.
Другими словами - берем mp4, получаем отдельно аудио и видео, видео публикуем в v4l2, аудио в jack.
Как я понимаю, с v4l2loopback Вы разобрались.
Для получения аудио можно использовать три вещи:
- alsaloopback - не рекомендую, так как альса блокирует вход-выход только для одного потока-программы
- jack (jackd) - аудиосервер, рекомендую, если будете это делать профессионально, но придется много почитать, зато и удобств в обращениии со звуком очень много, как и с куммутацией звука
- pulseaudio (pipewire) - аудиосервер (да-да тоже), обычно стоит из коробки в вашем любимом дистрибутиве!
PS. По хорошему, лучше с gstreamer работать не через gst-launch (что ничуть не умаляет его для потестировать или по-быстрому сделать пайплайн), а запилить маленькую программку, например на питоне с отловом ошибок шины gstreamer и перезапуском вслучае чего.
Нурислам Нагашыбай, да, в Arch все через командную строку. И это просто, если ставили линукс, ну раз 20 хотя-бы.
В противном случае, настоятельно не рекомендую!
Ибо Вы даже диск разметить не можете, выделив отдельную партицию под линукс и установить загрузчик.
Но да, этому нужно посвятить немного времени. Кроме линкера нужно будет освоить еще и передачу параметров в функции и обратно (часть через регистры, часть по стеку, часть по памяти)...
Зато потом будет на порядко легче.