???
Математика на уровне МГУ

Страница 1 из 7 12345 ... КрайняяКрайняя
Показано с 1 по 25 из 195

Тема: Маппер джойстика SVMapper от Nihil

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Re: USB контроллер джоистика

    Хотелось бы поприветствовать присутствующих.
    На суд уважаемых вирпилов выкладываю SV Mapper, как нетрудно догадаться из названия - мапер. Позволяет мапить как нажатия клавиш, так и их отпускание, плюс выставлять количество повторов нажатий.

    Также возможно задавать режим продолжительного нажатия (протестировалось с TeamSpeak'ом - вроде бы работает - на двух машинах).
    В сумме дает возможность распаивать двухпозиционные тумблеры на одну кнопку - на нажатие одно, на отжатие задать другое действие.
    Возможно установить пакетный отстрел ловушек.
    Не судите строго, программирование все-таки не мой хлеб.

    Испытывалось в LockOn 1.12a.

    Отдельная благодарность USSR_Rik за отзывы, комментарии и выдачу правильных указаний по части интерфейса/функционала программы.

    Апдейт

    Отвечу по пунктам Oleg_BS.
    2) Как по мне, то следующим шагом стоило бы реализовать возможность (о чем уже написали) назначения клавиш Ctrl, Shift,Alt.
    Мне просто в голову не приходило, что такое - тоже необходимо.
    Поэтому сделано в билде 1.0.0.51. Переобновил вложение.
    Только появляется по отпусканию, а не по нажатию.

    3) Кроме п.2. хотелось бы возможности назначения комбинаций кнопок, например "Ctrl+Shift+F4"
    Вообще говоря было задумано чтобы так тоже работало. Что интересно, у меня-таки оно работает. Попробуйте в другом порядке задать модификаторы - т.е. сначала Shift, потом Ctrl. Но попробую в свободное время поэкспериментировать более детально.

    4) Все таки нужен такой параметр как задержка между повторами.
    Пока что для меня сие сложновато.
    В этом варианте необходимо использование отдельных потоков - Threads. Надо развиваться в этом русле

    5) Отличной опцией было бы переключение профилей по нажатию кнопки джоя и возвращение на старый профиль при отпускании.
    Не подскажете, как оформить внутри интерфейса?

    6) Ну и в принципе (понимаю что для этого придется переписывать с нуля весь интерфейс) было бы неплохо иметь возможность программить "макросы", т.е. по нажатию одной кнопы джоя выдавать что нибуть типа "(Нажать А) (пауза 10) (Нажать Б) (пауза 3) С (повтор нажатия 3 раза) (Отпустить Б) (Отпустить А)".
    Ой, вот последний пункт вообще караул. Это надо сильно много думать

    Спасибо за отзывы.
    Вложения Вложения
    Крайний раз редактировалось Nihil; 09.03.2007 в 22:33. Причина: Правка вложения

  2. #2
    ED Team Аватар для USSR_Rik
    Регистрация
    16.08.2003
    Адрес
    Belarus, Minsk
    Сообщений
    2,450

    Re: USB контроллер джоистика

    Flaming Cliffs compatible
    ...чего уж тигру лишняя полосочка... (© - не помню)

  3. #3
    Пилот Аватар для Gelo
    Регистрация
    13.03.2006
    Адрес
    Вятка
    Возраст
    50
    Сообщений
    818

    Re: USB контроллер джоистика

    Nihil
    мапер сохранил главный (для меня) недостаток MJoy Maper'а - нельзя повесить на кнопку Shift или Ctrl.

  4. #4
    бешеный суслик Аватар для -=REA=-
    Регистрация
    21.10.2005
    Адрес
    Россия г.Киров
    Возраст
    45
    Сообщений
    368

    Re: USB контроллер джоистика

    можно ли в SV Mapper добавить функцию назначения на кнопку джоя кнопки Shift Ctrl...?
    и ещё, Хатка не видна.
    besheniy_suslik
    E8500 (3,8ГГц), Asus P5K, 4Гб, MSI GTX 570 1280Мб, Win7 64bit, 1920х1200

  5. #5
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: USB контроллер джоистика

    Цитата Сообщение от Nihil Посмотреть сообщение
    Хотелось бы поприветствовать присутствующих.
    На суд уважаемых вирпилов выкладываю SV Mapper, как нетрудно догадаться из названия - мапер. Позволяет мапить как нажатия клавиш, так и их отпускание, плюс выставлять количество повторов нажатий.
    Отлично! Спасибо!
    Сам уже неоднократно задумывался чтобы сесть и написать толковый маппер ибо потратив кучу времени и сил, так и не смог найти удовлетворительный по функционалу готовый маппер для "нефирменных" джоев, который к тому же еще и понимал бы >32 кнопок.
    Теперь по существу.
    1) Очень надеюсь, что программа будет развиваться. Поэтому будет совсем не лишним завести отдельный топик
    2) Как по мне, то следующим шагом стоило бы реализовать возможность (о чем уже написали) назначения клавиш Ctrl, Shift,Alt.
    3) Кроме п.2. хотелось бы возможности назначения комбинаций кнопок, например "Ctrl+Shift+F4"
    4) Все таки нужен такой параметр как задержка между повторами.
    5) Отличной опцией было бы переключение профилей по нажатию кнопки джоя и возвращение на старый профиль при отпускании.
    6) Ну и в принципе (понимаю что для этого придется переписывать с нуля весь интерфейс) было бы неплохо иметь возможность программить "макросы", т.е. по нажатию одной кнопы джоя выдавать что нибуть типа "(Нажать А) (пауза 10) (Нажать Б) (пауза 3) С (повтор нажатия 3 раза) (Отпустить Б) (Отпустить А)".

    Понимаю что последний пункт сложен для реализации, но овчинка выделки стоит.
    Понимаю что многого хочу (и как всегда сразу) но это те фичи, которые я реализовывал бы, если бы сел писать маппер, и ИМХО все они будут востребованы. Это просто идеи, реализовывать их или нет, естественно дело Автора.

    Ну и последнее. Очень прошу не забрасывать это начинание. Потребность в хорошем маппере существует, и существует давно. Реализаций (толковых) нет. Поэтому есть все шансы сделать уникальный продукт!

    Но даже тот функционал, что реализован сейчас это уже огромный прорыв для многих и многих владельцев МДжоя-16.
    Спасибо за отличную работу!!!
    Чукча не писатель, чукча - читатель.

  6. #6
    ED Team Аватар для USSR_Rik
    Регистрация
    16.08.2003
    Адрес
    Belarus, Minsk
    Сообщений
    2,450

    Re: USB контроллер джоистика

    Джентльмены, моя хотеть немножко добавить

    Одной из замечательных фич я считаю очень неплохую и простую (скажем модно - интуитивно понятную ) поддержку двухпозиционных тумблеров - это то, что долны оценить самоделкины. Причем смотрите - реализовано на одной кнопке (точнее, на одной паре контактов). Кран шасси, например (заранее извиняюсь - мои примеры будут из мира ЛокОн, Иловцы легко добавят своё - они лучше меня свой продукт знают).

    Ну и для тех, кто собирается прикручивать маппер к играм - сначала очистите полностью в игре назначения кнопок тех девайсов, которые будут замаплены на клавиатуру. В принципе, достаточно очистить только те кнопки, которым будет потом сопоставлена клавиатурная комбинация - но береженого Бог бережет, вдруг да захочется что-то поменять?
    ...чего уж тигру лишняя полосочка... (© - не помню)

  7. #7
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: USB контроллер джоистика

    Цитата Сообщение от Nihil Посмотреть сообщение
    Насчет невидимости хатки могу ответить - к сожалению разобраться не сумел пока ещё с ней по DirectX SDK.
    Ой...
    TDIJoyState2 = packed record
    // skipped...
    (1) rgdwPOV: Array [0..3] of DWORD; (* POV directions *)
    (2) rgbButtons: Array [0..127] of BYTE; (* 128 buttons *)
    // skipped...
    end;
    т.е. со 128 кнопами (стр.2) разобрался, а с 4-мя кнопами хатки (стр.1) нет? Я хоть и не Станиславский, но не верю
    Отвечу по пунктам Oleg_BS.

    Мне просто в голову не приходило, что такое - тоже необходимо.
    Это позволяет сделать аналог шифта (модификатора) на кнопке джоя. Т.е. вешаешь на одну из кнопок - Shift (или Ctrl), на вторую, допустим "m", и получается, что когда жмешь одну кнопу получаешь m, когда ОБЕ (кнопа + кнопа-модификатор) получаешь Shift+m, т.е. кол-во комбинаций удваивается.

    Поэтому сделано в билде 1.0.0.51. Переобновил вложение.
    Спасибо за оперативность!
    Но предыдущий пункт работает не так как хотелось бы. Т.е. хочется, чтобы при нажатии ДВУХ перечисленных выше кнопок, я на выходе получал нажатие Shift+m, т.е. М. Сейчас выходит следующее - (Нажать Shift, отпустить Shift, нажать m, отпустить m)
    Вообще говоря было задумано чтобы так тоже работало. Что интересно, у меня-таки оно работает. Попробуйте в другом порядке задать модификаторы - т.е. сначала Shift, потом Ctrl.
    Посыпаю голову пеплом :confused: Я написал этот пункт не проверяя. почему то решил, что если не обрабатывается Shift, Ctrl etc., то и комбинаций быть не может. Сорри, все работает!
    Пока что для меня сие сложновато.
    В этом варианте необходимо использование отдельных потоков - Threads. Надо развиваться в этом русле
    Я не знаю как реализована передача нажатий клавы, но почему обычная задержка не подходит?
    Не подскажете, как оформить внутри интерфейса?
    Первое что приходит в голову без глобальных переделок интерфейса - два дополнительных столбца грида(профиль при нажатии / профиль при отпускании), при клике на которых появляется стандартное окно открытия файла (профиля), и если диалоговое окно открытия файла завершилось по "ОК" - очищаем поля замапленых кнопок, а в соответствующее поле профиля вписываем имя файла профиля.
    Но повторюсь, это самое простое решение, которое пришло в голову, скорее всего существуют более "красивые".

    И эта-а-а... Мы ж на форуме. "Выкать" мне не обязательно, даже (скажу по секрету) вредно. А то я зазнаюсь и начну требовать тако-о-о-о-го...
    Ой, вот последний пункт вообще караул. Это надо сильно много думать
    Да и фиг с ним. Как минимум пока Вернемся к этому потом (напоминаю, цель - создание уникальной программы). У меня еще есть несколько идей по обработке осей, но не все сразу

    И еще? Что там такого пишется в профиль, что при замапленых ДВУХ кнопках на нажатие он размерчиком в 180 кил?
    Зачем туда писать названия джоев?
    Как по мне,
    1)джои в конфиге должны описываться по номерам. Грубо говоря "Джой1, кнопка 3" Это кстати позволит обмениваться профилями.
    2) конфиг должен быть либо .txt, либо *.ini. Судя по наличию config.ini работа с ini-файлами не составляет проблем? Но профиль, при наличии прямых рук, можно будет подправить руцями, да и просто понять что куда замаплено, просто открыв профиль в ноутпаде ;-)

    P.S. сам относительно недавно выступал в роли автора софта для ИЛа, и знаю как порой достают "юзеры", которым вечно чего то нехватает, которые просят какую то "х.фигню", которая на мой взгляд нафиг не нужна, и т.д. и т.п.
    Так что прошу не обижаться. Я не в коей мере не пытаюсь "учить", я просто идеи генерю, которые можно принимать, можно отбрасывать, или расставлять по приоритетам

    P.P.S я бы все таки перенес первый пост в новый топик, и там продолжим. Ибо (что-то мне подсказывает ) тема эта будет развиваться, так к чему выискивать нужные посты среди вопросов о МДжое?
    Чукча не писатель, чукча - читатель.

  8. #8

    Re: USB контроллер джоистика

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    т.е. со 128 кнопами (стр.2) разобрался, а с 4-мя кнопами хатки (стр.1) нет? Я хоть и не Станиславский, но не верю
    Просто не было потребности - хатку на MJ16 я не распаивал, вот-с
    Поэтому пока не копался.

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Но предыдущий пункт работает не так как хотелось бы. Т.е. хочется, чтобы при нажатии ДВУХ перечисленных выше кнопок, я на выходе получал нажатие Shift+m, т.е. М. Сейчас выходит следующее - (Нажать Shift, отпустить Shift, нажать m, отпустить m)
    Необходимо переключить назначенную на роль Shift'а кнопку в Continous режим. По идее должно помочь.

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Я не знаю как реализована передача нажатий клавы, но почему обычная задержка не подходит?
    Потому как если в основном потоке сформировать sleep(N), то весь поток обработки нажатий кнопок джойстика "отстанет" на это самое время задержки N.
    Если паузы составляют 20-40 мс, заметно не особо будет, но вот если кому-то придет в голову отстреливать пакет ДО и ЛТЦ (эдак 5-6 пачек) с задержкой по 1000мс между выбросом - разница будет весьма ощутимой.
    Поэтому по-человечески надо порождать отдельную нить, которая отправит SendInput (комбинация1), потом заснет на время задержки, потом отправит еще один SendInput и т.д.
    При этом основной поток будет все также обрабатывать кнопки джойстика.

    Про профиль подумаю, но пока что сложновато

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    И еще? Что там такого пишется в профиль, что при замапленых ДВУХ кнопках на нажатие он размерчиком в 180 кил?
    Ответ простой - сбрасывается вся структура на описание кнопок.
    По идее можно прицепить ZLIB.DLL и архивировать перед сохранением, но пока что не до того.

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Зачем туда писать названия джоев?
    Как по мне,
    1)джои в конфиге должны описываться по номерам. Грубо говоря "Джой1, кнопка 3" Это кстати позволит обмениваться профилями.
    Туда пишется не столько название, сколько ProductName и его GUID.
    Пишется исключительно для того, чтобы при загрузке профиля кнопки, назначенные на один джой, цеплялись именно к нему. Мне не пришло в голову, как при подключенных нескольких контроллерах иным путем определить что к чему.
    Если сделать именно Джой1, кнопка 3 - то, допустим следующую ситуацию - было подключено два джойстика, один из них вдруг решено выдернуть из компа. Причем первый.
    Теперь второй джойстик стал первым на запуске программы.
    Какой будет результат?..

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    2) конфиг должен быть либо .txt, либо *.ini. Судя по наличию config.ini работа с ini-файлами не составляет проблем? Но профиль, при наличии прямых рук, можно будет подправить руцями, да и просто понять что куда замаплено, просто открыв профиль в ноутпаде ;-)
    Он там .ini назван просто "по моему личному удобству". На самом деле в тот ini скидывается исключительно путь к прошлому профилю.
    Не стал использовать для той же цели обращение к реестру, хотя так правильнее.
    Насчет того, что профили лучше хранить в текстовом формате пока что не соглашусь.
    Вероятно, поколдую на досуге со сбросом-чтением в текстовый файл, но гораздо проще и легче сделать как сейчас - отдать в поток структуру данных без преобразований.

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    P.P.S я бы все таки перенес первый пост в новый топик, и там продолжим. Ибо (что-то мне подсказывает ) тема эта будет развиваться, так к чему выискивать нужные посты среди вопросов о МДжое?
    Пусть пока тут поживет, так как вроде бы продукт пока что больше к MJ16 относится

  9. #9
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: USB контроллер джоистика

    Необходимо переключить назначенную на роль Shift'а кнопку в Continous режим. По идее должно помочь.
    Я хоть и не в Америке живу, но Жванецкий, произнося слово "Ну тупы-ы-ы-е" явно про меня думал
    Работает, спасибо!
    Потому как если в основном потоке сформировать sleep(N), то весь поток обработки нажатий кнопок джойстика "отстанет" на это самое время задержки N.
    Согласен, был не прав.
    Но IMHO это (задержка) очень нужная фича. По приоритетам я бы ее на №1 воткнул.
    Кстати посмотрел сейчас свои профили для ИЛ-2 и МСФС и понял, что прижившийся на компе JoyToKey будет выброшен моментально после появления задержек ;-)
    Про профиль подумаю, но пока что сложновато
    Главное, что остается надежда, а не мгновенный ответ "не будет"
    Туда пишется не столько название, сколько ProductName и его GUID.
    Пишется исключительно для того, чтобы при загрузке профиля кнопки, назначенные на один джой, цеплялись именно к нему. Мне не пришло в голову, как при подключенных нескольких контроллерах иным путем определить что к чему.
    Если сделать именно Джой1, кнопка 3 - то, допустим следующую ситуацию - было подключено два джойстика, один из них вдруг решено выдернуть из компа. Причем первый.
    Теперь второй джойстик стал первым на запуске программы.
    Какой будет результат?..
    Предлагаю рассмотреть следующую ситуацию. В системе ОДИН джой - МДжой16. И тут вдруг как нибудь он отключается. Какой будет результат?
    Правильно, пользователю будет пофиг маппер, замапленные кнопки в ИЛ/Локон/МСФС и он будет решать одну единственную задачу - как сделать так, чтобы система увидела джой.
    К чему это я? Да к тому, что отслеживание аппаратных проблем не есть задача маппера. Соответственно структуру профиля можно упростить.

    Пример номер 2. Человек поменял один джой на другой. Допустим Сайтек 52 на Сайтек 52Про. Кнопы те же, раскладка та же, но продакт-АйДи поменялся. И что, перемапливать все кнопки по новому?
    ИМХО, значительно удобнее было бы чтоб профиль продолжал работать без привязки к точным параметрам джоя.
    Насчет того, что профили лучше хранить в текстовом формате пока что не соглашусь.
    Вероятно, поколдую на досуге со сбросом-чтением в текстовый файл, но гораздо проще и легче сделать как сейчас - отдать в поток структуру данных без преобразований.
    Проще - возможно. Лучше - не уверен. В делфи очень легкая работа с ini файлами. Посему лучше бы все таки в ini а не в txt. (я не про расширения файлов, а про их структуру)
    Хотя повторюсь, по приоритетам, задержки на первом месте, как для меня.
    И еще раз спасибо за отличный софт!!!
    Чукча не писатель, чукча - читатель.

  10. #10

    Апдейт до версии 1.0.0.56

    Докладываю - сегодня созрел апдейт до версии 1.0.0.56 (см. первый пост в ветке - аттач заменил там).

    Два основных изменения:
    - сохранение в INI-файлы,
    - реализованы паузы между повторами.

    Косметика:
    - изначально программа стартует, будучи свернутой в трей.

    Поддержка старых профилей - от версии 1.0.0.51 осталась. Но теперь в них не следует сохраняться, так как поля задержек там отсутствуют.

    Процитирую себя из readme_rus.txt:
    - сохраняйте профили в INI-файлы, так как в формате SVM поддерживаются не все поля.
    - тем пользователям, которые переходят с версии 1.0.0.51 на более позднюю, рекомендуется пересохранить имеющийся профиль в формате INI.

    Теперь займусь вопросом поддержки хаток.

  11. #11
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: Апдейт до версии 1.0.0.56

    Цитата Сообщение от Nihil Посмотреть сообщение
    Докладываю - сегодня созрел апдейт до версии 1.0.0.56 (см. первый пост в ветке - аттач заменил там).

    Два основных изменения:
    - сохранение в INI-файлы,
    - реализованы паузы между повторами.

    <...Skipped...>

    Теперь займусь вопросом поддержки хаток.
    Молодчина!!!
    Два дня отсутствовал, сегодня заглянул, а тут такая приятная новость!
    Вечером проверю на домашней машине, и скорее всего, если в описанном функционале багов не обнаружится, Joy2key будет отправлен на свалку истории (мне хатки пока не актуальны).
    Добавлено:
    После некоторых шевелений мозгами и вспоминаний что куда у меня замаплено, понял, что таки актуально ;-)
    Спасибо, так держать!!!
    Крайний раз редактировалось Oleg_BS; 22.02.2007 в 16:10.
    Чукча не писатель, чукча - читатель.

  12. #12
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    Саша, потестировал я тут самую малость 1.0.0.56 и нашел пару небольших багов:
    1) config.ini пишется в тот же подкаталог, куда сохраняется последний профиль. Соответственно, если профиль лежит не в каталоге с ехе-шником, то при запуске config.ini не находится и последний профиль не подгружается, приходится выбирать ручками через меню.
    2) При открытии профайла не обновляется экран программы. Т.е. назначенные в открытом профайле комбинации никак на интерфейсе не видны (показывается содержимое предыдущего профиля). Приходится через меню, ручками делать рефреш. Сделай плиз автоматический вызов функции рефреша сразу после выбора нового профайла.

    Ну и маленькое пожелание по косметике. Хотелось бы внизу окна иметь строку статуса, на которую выводить имя профиля. (как вариант, чтобы не перекраивать интерфейс, выводить имя файла профиля в заголовок окна, сразу после названия, так наверное даже лучше). Ну т.е. если у меня разные профили для ИЛ-2, ЛокОН и МСФС, то хотелось бы, не вдаваясь в подробности какая кнопка на что замаплена, видеть какой из профилей загружен.
    Чукча не писатель, чукча - читатель.

  13. #13
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    И еще...
    Мне кажется, что лучше было бы изменить структуру ini-файла профиля.
    Изменения нужны для того, чтобы было проще обмениваться профилями, пусть даже с ручной корректировкой файла профиля.
    Суть предлагаемых изменений следующая:
    - GUID (если уж без него не обойтись, писать как параметр описания джоя, наравне с названием, а не использовать в качестве имени параметра.
    Пример как есть сейчас:
    [{BEF0DEAD-0000-0000-0000-504944564944},{46015AD0-BC49-11DB-8001-444553540000},PPJoy Virtual joystick 1]
    NumberOfButtons=16
    [{BEF0DEAD-0000-0000-0000-504944564944},{46015AD0-BC49-11DB-8001-444553540000},PPJoy Virtual joystick 1\Button1]
    OnDownCount=1
    OnDown=4
    OnDownRepeat=1
    Пример как хочется:
    [Joystick1]
    GUID = {BEF0DEAD-0000-0000-0000-504944564944},{46015AD0-BC49-11DB-8001-444553540000}
    JoyName = PPJoy Virtual joystick 1
    NumberOfButtons=16
    NmberOfPOV=1
    [Joystick1\Button1]
    OnDownCount=1
    OnDown=4
    OnDownRepeat=1
    Зачем? Да просто если использовать чужой профиль, то GUID и имя джоя придется менять только в ОДНОМ месте профиля, а не глобальным поиском по всему файлу. Да и читабельность (ИМХО) на порядок лучше. Размер файла опять таки уменьшится.

    А вот поддерживать совместимость со старым форматом профиля ИМХО лишняя трата времени и сил.

    И последнее. Опять таки ИМХО. Расширение профиля по умолчанию, лучше все таки сменить со стандартного ini на тот же .svm (хотя по содержанию, это останется ini-файл).
    Зачем? Ну например чтобы четко прописать соответствие типу файла .svm вызову программы маппера. Т.е. кликнул по файлу профиля, автоматом загрузился маппер и открыл данный профиль (ну ленивый я).
    Для этого конечно надо доработать маппер, чтобы ему в параметрах коммандной строки (при запуске) можно было передавать путь к файлу профиля.
    Это конечно рюшечки, и их можно оставить на потом, но согласись было бы удобно
    Крайний раз редактировалось Oleg_BS; 22.02.2007 в 16:42.
    Чукча не писатель, чукча - читатель.

  14. #14
    ED Team Аватар для USSR_Rik
    Регистрация
    16.08.2003
    Адрес
    Belarus, Minsk
    Сообщений
    2,450

    Re: Маппер джойстика SVMapper от Nihil

    НАсколько я помню, в ключах командной строки есть какой-то, который позволяет запустить следующую программу из пакета не дожидаясь, когда отработает текущая. Да вот беда - вспомнить и найти ее не могу, забыли мы все старый добрый DOS, избаловались окнами да мышом

    А вот это должно решить много вопросов:
    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Расширение профиля по умолчанию, лучше все таки сменить со стандартного ini на тот же .svm (хотя по содержанию, это останется ini-файл).
    Зачем? Ну например чтобы четко прописать соответствие типу файла .svm вызову программы маппера. Т.е. кликнул по файлу профиля, автоматом загрузился маппер и открыл данный профиль (ну ленивый я).
    Для этого конечно надо доработать маппер, чтобы ему в параметрах коммандной строки (при запуске) можно было передавать путь к файлу профиля.
    Создаем несколько профилей, вытаскиваем ярлыки - вуаля! Пиши хоть батник, а кто хочет - может и по нужному ярлыку профиля кликнуть.

    Ну и по макросам - очень хотелось бы. Чтобы можно было текстом написать (условно):

    Joy1_XXXXXX_Button17_OnPress = {W} {Pause 58} {R} {Pause 20} {W}
    ...чего уж тигру лишняя полосочка... (© - не помню)

  15. #15
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от USSR_Rik Посмотреть сообщение
    Ну и по макросам - очень хотелось бы. Чтобы можно было текстом написать (условно):

    Joy1_XXXXXX_Button17_OnPress = {W} {Pause 58} {R} {Pause 20} {W}
    Присоединяюсь к просьбе о макросах.
    ИМХО если реализовывать этот функционал, то необходимо не забыть возможность указания не только эмуляции нажатия клавиатурной клавиши, но и ее отпускания. Т.е. типа:
    SHIFT {20} R {20} r {20} shift, что в переводе на русский значит
    Нажали Shift, пауза 20 мс, нажали R,пауза 20 мс, отпустили R, пауза 20 мс, отпустили Shift. Короче говоря БОЛЬШИМИ буквами - нажатие, маленькими - отпускание.
    Это даст возможность реализовывать сложные клавиатурные комбинации типа Ctrl+Alt+Shift+E, регулировать продолжительность нажатия (ну например для "порционирования" пулеметно-пушечных очередей) и т.д.

    Что касается реализации, то, опять таки ИМХО, ручное редактирование строки не самый оптимальный вариант. Лучше сделать по принципу Сайтековского маппера - ручками жмешь нужные кнопы, они пишутся (с подсчетом и вводом длительности пауз между нажатиями) и есть возможность ручной корректировки длительности пауз (только пауз, поскольку легче контролировать ввод - только числовые значения).

    Теперь пару слов по интерфейсу.
    Строку макроса записывать прямо в поля "Mapped Key On Press" и "Mapped Key On Release". Кстати, туда же, лучше писать и название загружаемого профиля, возможно предваряя его каким то префиксом, например PR:"D:\SVMapper\Su27.svm"
    Тем самым, при наращивании функционала, окно маппера не разрастается вширь, и все рабочее пространство используется максимально эффективно.
    Для того, чтобы маппер понял, чего же нужно запихивать в это поле (комбинацию, профиль, макрос) лучше всего реализовать контекстное меню по правому клику на поле:
    "Очистить строку"
    "Клавиша"
    "Макрос"
    "Профиль"
    "Редактировать"
    При выборе соответствующего пункта, получаем дополнительное окно в котором и производим требуемое действо.
    Ну и действительно, подсветка выбранной строки, не помешала бы.

    Саша, мы в тебя верим!
    Чукча не писатель, чукча - читатель.

  16. #16

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Саша, потестировал я тут самую малость 1.0.0.56 и нашел пару небольших багов:
    1) config.ini пишется в тот же подкаталог, куда сохраняется последний профиль. Соответственно, если профиль лежит не в каталоге с ехе-шником, то при запуске config.ini не находится и последний профиль не подгружается, приходится выбирать ручками через меню.
    Поправил - теперь config.ini ищется (и пишется) исключительно в каталог с программой.

    2) При открытии профайла не обновляется экран программы. Т.е. назначенные в открытом профайле комбинации никак на интерфейсе не видны (показывается содержимое предыдущего профиля). Приходится через меню, ручками делать рефреш. Сделай плиз автоматический вызов функции рефреша сразу после выбора нового профайла.
    Все сделано, раньше подгрузка была некорректно реализована.
    Воистину, старые хвосты - это как камень на шею. Вон USSR_Rik вчера мне много чего успел по поводу багов выдать.

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Ну и маленькое пожелание по косметике. Хотелось бы внизу окна иметь строку статуса, на которую выводить имя профиля. (как вариант, чтобы не перекраивать интерфейс, выводить имя файла профиля в заголовок окна, сразу после названия, так наверное даже лучше).
    Вообще-то вывод в заголовок пути и имени профиля еще в 1.0.0.50 был сделан. См. скриншот из программы от USSR_Rik
    http://forum.lockon.ru/attachment.ph...0&d=1171813345
    В заголовке окна явственно видна надпись "SV Mapper - D:\1C\SVMapper\LO_FC.svm"
    У меня тоже надпись подобная выводится. С поправкой на то, что путь другой к профилю. Может быть, как-то подробней можно описать возникающую ситуацию с невыводом в заголовок имени профиля?

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Зачем? Да просто если использовать чужой профиль, то GUID и имя джоя придется менять только в ОДНОМ месте профиля, а не глобальным поиском по всему файлу. Да и читабельность (ИМХО) на порядок лучше. Размер файла опять таки уменьшится.
    Пока что мне удобней именовать секции в формате [{ProdGUID},{InstanceGUID},ProductName<\subsection>]
    То, что так в одном месте менять придется - это я обдумывал, но пока что так сделать было легче.
    А так - я просто невооруженным взглядом вижу навязчивую мысль сделать именно так, чтобы номера джойстиков фигурировали в профиле

    Также могу отметить, что автоматическую замену с Replace All вроде бы никто не отменял, разве нет? С данной функцией при редактировании профиля не составит разницы - в одном месте поправить или в пяти десятках.
    Вообще редактирование профиля вручную, согласись, это работа опциональная, разовая, не требующая каждодневных усилий на этой почве.
    Отмечу также, что задачи разработки удобного для ручного редактирования формата файла и просто формата файла для сохранения конкретных данных несколько различны по своей постановке.
    Не вдаваясь в подробности - проще отдать указатель на структуру в памяти и сказать, сколько байт писать в файл, начиная с этого места, и потом в обратную сторону - аналогично - читаем в память с такого-то места из файла, начиная с такой-то позиции столько-то байт. А синтаксический разбор значений, с попутной проверкой, есть ли они вообще файле или отсутствуют напрочь - уже совсем другое дело.
    Что проще реализовать? Конечно, первый вариант.

    О размере файла... Конечно, кощунственно прозвучит, но в эру гигабайтных винчестеров, разница - 5 кб или 30 кб не видна. И то и другое займет ничтожную величину от общего дискового объема.
    Можно, конечно, говорить о программистском заговоре - они навязчиво заставляют покупать винты чудовищных объемов, хотя можно обойтись и меньшим
    В конечном счете размер файла при указанных характерных объемах - совсем не решающий аргумент в пользу выбора формата именования секций.

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Для этого конечно надо доработать маппер, чтобы ему в параметрах коммандной строки (при запуске) можно было передавать путь к файлу профиля.
    Конечно, было бы удобней

    Цитата Сообщение от Aim
    Потестил я тоже эту прогу, кроме багов в интерфейсе, заметил невозможность замапить клавишу Del. Вместо ее мапится NumDel.
    Стало быть, клавиатурный контроллер конкретно твоей клавиатуры выдает скан-код NumDel в ответ на нажатие. Сканд-код клавиши Delete в десятичной системе счисления равен 211.
    Из DX SDK: DIK_DELETE = 0xD3.
    Соответствующая этому коду строковая константа в программе - просто 'Del'.
    Соответственно, как получается NumDel - я не в курсе.
    Если это слово прописывает непосредственно та игра, для которой мапятся кнопки после нажатия кнопки джойстика при включенном маппере, стало быть игра обрабатывает поток ввода с клавиатуры несколько иначе - возможно, используя манипуляции с MapVirtualKey(..,..)
    Проверь, какой скан-код кнопки мапится в SV Mapper'е, посмотрев в ini-файл профиля.
    Должно быть OnDown = 211.
    -
    По итогам - перевесил 1.0.0.57 с небольшой кучкой исправлений по пунктам сообщений Oleg_BS.

  17. #17
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от Nihil Посмотреть сообщение
    Вообще-то вывод в заголовок пути и имени профиля еще в 1.0.0.50 был сделан.
    Снова вынужден признать что я балбес
    У меня тоже работает! Наверное просто в голову первой пришла мысль о статусбаре, посему на заголовок взглянуть не удосужился.

    Пока что [выделено Oleg_BS] мне удобней именовать секции в формате [{ProdGUID},{InstanceGUID},ProductName<\subsection>]
    То, что так в одном месте менять придется - это я обдумывал, но пока что так сделать было легче.
    А так - я просто невооруженным взглядом вижу навязчивую мысль сделать именно так, чтобы номера джойстиков фигурировали в профиле
    Не, честно говорю, никакого заговора и навязчивых идей нет
    Мне кажется что выбраный формат менее нагляден нежели предлагаемый, поэтому я свои 5 копеек (предложение) и вынес на обсуждение.
    ИМХО, стоит сразу тщательно продумать структуру ini-файла, дабы впоследствии не пришлось ее менять, поскольку если руки дойдут до этого на финише ("этап рюшечек") то кол-во созданых профилей, и, соответственно кол-во сил на перемапливание, умноженное на кол-во пользователей маппера, будет на порядки больше нежели сейчас.
    Именно поэтому я и выделил начало фразы в цитате.

    Ведь давай посмотрим с другой колокольни. Был формат svm. Зачем его предложили заменить на ini. Чтобы было удобнее пользоваться нам, пользователям продукта. Хотя кидать в бинарный файл структуру данных было легче, но вняв настойчивым просьбам, ты перешел на .ini
    Чувствуешь к чему я клоню?

    По итогам - перевесил 1.0.0.57 с небольшой кучкой исправлений по пунктам сообщений Oleg_BS.
    Спасибо! Таки Joy2Key уйдет на свалку
    Чукча не писатель, чукча - читатель.

  18. #18
    азиатор
    Регистрация
    12.01.2004
    Адрес
    Voronezh
    Возраст
    40
    Сообщений
    712

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от Nihil Посмотреть сообщение
    Стало быть, клавиатурный контроллер конкретно твоей клавиатуры выдает скан-код NumDel в ответ на нажатие. Сканд-код клавиши Delete в десятичной системе счисления равен 211.
    Из DX SDK: DIK_DELETE = 0xD3.
    Соответствующая этому коду строковая константа в программе - просто 'Del'.
    Соответственно, как получается NumDel - я не в курсе.
    Если это слово прописывает непосредственно та игра, для которой мапятся кнопки после нажатия кнопки джойстика при включенном маппере, стало быть игра обрабатывает поток ввода с клавиатуры несколько иначе - возможно, используя манипуляции с MapVirtualKey(..,..)
    Проверь, какой скан-код кнопки мапится в SV Mapper'е, посмотрев в ini-файл профиля.
    Должно быть OnDown = 211.
    Дык в конфиге так и записано, но правда я проверял в notepad . Печатает точку, вместо удаления символов. Попробую в Локоне, напишу результат.
    aim and fire

  19. #19
    азиатор
    Регистрация
    12.01.2004
    Адрес
    Voronezh
    Возраст
    40
    Сообщений
    712

    Re: Маппер джойстика SVMapper от Nihil

    Потестил я тоже эту прогу, кроме багов в интерфейсе, заметил невозможность замапить клавиши Del, Home и т.п.
    Ну и пожелание от меня, сделать возможность программировать сложные последовательности типа(на примере Локона, отстрел ЛТЦ):
    ЛТЦ-пауза 100мс-ЛТЦ-100-ЛТЦ-3000-ЛТЦ-100-ЛТЦ-100-ЛТЦ

    Вообще, за саму прогу - респект, до сих пор не могу вычистить из системы остатки Логитековских и Трастмастеровского профайлеров, а эта прога- то что надо.
    Крайний раз редактировалось Aim; 22.02.2007 в 18:56.
    aim and fire

  20. #20
    ED Team Аватар для USSR_Rik
    Регистрация
    16.08.2003
    Адрес
    Belarus, Minsk
    Сообщений
    2,450

    Re: Маппер джойстика SVMapper от Nihil

    У меня Del мапится нормально. Aim, у тебя клава какая (о, тут может быть миллион проблем, мы с таким уже на другом тестинге сталкивались ).

    По поводу
    А вот поддерживать совместимость со старым форматом профиля ИМХО лишняя трата времени и сил.

    И последнее. Опять таки ИМХО. Расширение профиля по умолчанию, лучше все таки сменить со стандартного ini на тот же .svm (хотя по содержанию, это останется ini-файл).
    Зачем? Ну например чтобы четко прописать соответствие типу файла .svm вызову программы маппера. Т.е. кликнул по файлу профиля, автоматом загрузился маппер и открыл данный профиль (ну ленивый я).
    Для этого конечно надо доработать маппер, чтобы ему в параметрах коммандной строки (при запуске) можно было передавать путь к файлу профиля.
    - я всеми конечностями "ЗА".

    И по интерфейсу еще - хорошо бы после рефреша (и перед записью профиля на диск) удалять те комбинации, которые введены ошибочно (т.е. те, для которых выставлено Repeat=0) - ну просто чтоб глаза не мозолили.
    ...чего уж тигру лишняя полосочка... (© - не помню)

  21. #21
    Забанен
    Регистрация
    20.04.2006
    Возраст
    46
    Сообщений
    2,478

    Re: Маппер джойстика SVMapper от Nihil

    так, господа, поступило предложение, против которого не возражает автор программы, - перенести эту тему вот сюда http://forum.sukhoi.ru/forumdisplay.php?f=146.
    кто за-против? жду три дня, потом после подсчёта голосов всё решу сам.
    шутка голосуйте!

  22. #22
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от SAS[Kiev_UA] Посмотреть сообщение
    так, господа, поступило предложение, против которого не возражает автор программы, - перенести эту тему вот сюда http://forum.sukhoi.ru/forumdisplay.php?f=146.
    кто за-против? жду три дня, потом после подсчёта голосов всё решу сам.
    шутка голосуйте!
    Я за! (Надеюсь мы не будем никому рассказывать, что это именно моя идея была сначала на счет выделения топика в отдельную ветку, а потом и переноса в соответсвующий раздел? )
    To: Nihil
    Я просто сразу понял всю перспективность и востребованность данного программного продукта (типа подмазываюсь )
    To:SAS[Kiev_UA]
    А к чему голосовать, и тем самым захламлять топик?
    Если Автор не против, то ИМХО в "железе" о железе, а в "полезных программах" - о полезных программах :old:
    Чукча не писатель, чукча - читатель.

  23. #23
    азиатор
    Регистрация
    12.01.2004
    Адрес
    Voronezh
    Возраст
    40
    Сообщений
    712

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от SAS[Kiev_UA] Посмотреть сообщение
    так, господа, поступило предложение, против которого не возражает автор программы, - перенести эту тему вот сюда http://forum.sukhoi.ru/forumdisplay.php?f=146.
    кто за-против? жду три дня, потом после подсчёта голосов всё решу сам.
    шутка голосуйте!
    Против, т.к. программа не только для Ил-2 подходит. Можно создать там тему с ссылкой в этот раздел.
    aim and fire

  24. #24
    бешеный суслик Аватар для -=REA=-
    Регистрация
    21.10.2005
    Адрес
    Россия г.Киров
    Возраст
    45
    Сообщений
    368

    Exclamation Re: Маппер джойстика SVMapper от Nihil

    Отлично работает!
    Хатку переключил на обычные кнопки Mj16, теперь меня этот маппер устраивает на 100%, joy2key - фтопку.

    ветку, наверное, лучше перенести в "Общественное КБ - Программное обеспечение"
    besheniy_suslik
    E8500 (3,8ГГц), Asus P5K, 4Гб, MSI GTX 570 1280Мб, Win7 64bit, 1920х1200

  25. #25
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    54
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    Что тема подзаглохла
    Подниму заодно
    Цитата Сообщение от SAS[Kiev_UA] Посмотреть сообщение
    так, господа, поступило предложение, против которого не возражает автор программы, - перенести эту тему вот сюда http://forum.sukhoi.ru/forumdisplay.php?f=146.
    кто за-против? жду три дня, потом после подсчёта голосов всё решу сам.
    шутка голосуйте!
    3 дня уже прошли, или как?

    2) Саша, поделись планами. Расскажи чего нам ждать в обозримом будущем.
    Можно даже без указания сроков (чтоб не подумал, что я типа тороплю )
    Чукча не писатель, чукча - читатель.

Страница 1 из 7 12345 ... КрайняяКрайняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •