LG.BALUKATION's Weblog

Ничего, это тоже кое-что… А при желании из него можно сделать что угодно

Музыкальный… демон =)

Posted by LG.BALUKATION на 2007/05/06

Что-то Ежичек недавно разошлась у себя на блоге и так постанула, что вдохновила не только себя, но и некоторых читателей — например меня =) Спасибо тебе, Оля! Посмотрим, во что это выльется…

Суть в том что некоторое время назат я возобновил своё присутствие в IRC. Некогда я счутка посиживал на одном серваке, но потом что-то постепенно ушёл оттуда. А тут Саша (да и не только она) время-от-времени подкидывает что-нить смешное с БОРа. Вот я постепенно уже перечитал кажется весь БОР, терь тока новинки раз в сутки смотрю и как-то в процессе вспомнилось мне каково это самому в IRC сидеть. И впрямь, это обычно весёлое занятие (хотя зависит от сервера), хотя порой на каналах и царит гробовая тишина иль просто народу нет. В общем, решил я снова посдсесть на этот вид общения.

Скомпилил се X-Chat из портежей, настроил и попёрся на тот же сервак, где и раньше сидел (он основан бывшими инфостаровцами, меня и так туда звали иногда, вот и дозвались =). Постепено освоился с основными командами… И вот появилась у меня значится такая прихоть (как же без этого ;-) — чтоб музон играющтй показывался.

Ну, ХЧат прога распространённая, попёрся на её сайт в раздел плагинов и скачал вроде как нужный. Но не понравился мне он — это оказался скрипт на Питоне (не люблю я интерпритируемые языки почему-то), юзал он вызов консольного клиента и показывал инфу тока когда запросишь сам — короче через жопу сделан, с какими-то левыми наворотами и ахтунговыми решениями =) Появилась мысля селать что-нить самому — яж вроде как на программера учусь…

Малость глянув, выяснил что обе интересующие меня хрени имеют API к Си. Нашёл вроде как описания, стал пробовать.

Вчера (в ночь с 4 на 5 мая 2007) смотрел на ХЧат. Палево, скажу я вам :-? Есть типа дока по кодингу плагинов. В ней краткое вступление, инфа о том как компилить (плагин должен быть разделяемой библиотекой), простенький пример и описание некоторых функций. Да именно некоторых — мну был в ахуе, просмотрев доку. Хотя имена и дают более менее ясное представление о назначении, но всёж горчило отсутствие полного перечня доступных плагину функций, а некоторые функции вообще не описаны и назначение их сомнительно (хотя стОит заметить, что самые интересные и востребованные из них даже прокомментированы примерами). В общем, какая-то незавершённость документации. Впрочем само API вроде сделано достаточно просто — его идеи не сложно понять, они вполне доступны после рассмотрения примера, подкачала тока дока.

Сегодня (т.е. ночь с 5 на 6 мая 2007) я решил обратить свой взор на вторую составляющую этого трио (трио, поскоку в идеале ещёб gajim или d-bus вплести, но в эту сторону я пока не смотрел) — Music Player Daemon. Для общение с демоном авторы предоставляют библиотеку — libmpd. Правда ebuild в портежах Gentoo Linux собирает её без документации, но лично мне пересобирать лень, а чтение он-лайм мао обламывает =) Так что документация доступна тут, а один пример есть тут. Дока эта автоматом сгенерённая по комментам с сырцах — описывает всё, но не всегда подробно и структура неколько запутана. Но в целом мне понравилось — если раньше я просто считал «mpd+клиенты» подходящей мне связкой, то терь мне понравилось и кодить под это. API прост и понятен — названия говорят сами за себя, я даж замутил простенькую прогу сам, так и не удосужившись глянуть приведённый выше пример B-) Сделано просто и удобно!

Собстно терь осталось скрестить обе наработки в одном плагине — мож займусь как-нить на досуге =)

Сорсы:
Файлы в кодировке UTF-8, называться должны Makefile и music.c. Версия от 7 мая 2007 года.
Makefile
music.c

Реклама

комментария 22 to “Музыкальный… демон =)”

  1. ram32 said

    Круто! Молодчина! :)
    С нетерпением ждем релиза! :)

  2. Oleg said

    Саня, не понимаю нафимг оно те — тыж вроде как не висишь в IRC и не юзаешь MPD =) Или моя инфа устарела?

    Короче, один хрен сёдня в шесть утра (как ни странно, но ровно — в 6:01 уже первые успешные тесты были) зарелизил первыю рабочую сборку =)

    Если кому интересно, пока просите сырцы. Так-как тут нормально хрен выложишь, а там где я выложу, не все смогут посмотреть =) Код не большой, меньше ста строчек (76, хотя можно поудалять лишних строк и заголовков — останется полтиник), прога простая. Один подпводный камень был — пока не переподключишься к MPD, он выдаёт одну и ту же песню.

  3. Igor said

    выкладывай на googlepages.com, очень удобное место для всяких файлов..

  4. Oleg said

    Хм… Не уверен, что это то, что мне надо, но всёж посмотрим ;-)

  5. Ёжик said

    всегда пжлста :-)
    хорошо, что хоть кого-то вдохновляет ;-)
    удачи в начинаниях ;-)

  6. Oleg said

    Игорь, оно реально не катит. Подробности на http://lg.balukation.googlepages.com/ :-?
    ЗЫ: слабонервным и особо правильным просьба не пытаться смотреть, сайт не для публики делался %)

  7. Igor said

    Что-то я не просёк, почему не катит.. :)
    P.S. что ещё за rar архивы?!

  8. Igor said

    Ты заходишь за googlepages, потом жмёшь upload и кидаешь ссылку. Вот и всё.

  9. Oleg said

    …потом снова заходиль и облом — нет больше твоего файла :-(
    rar-архивы — сырцы и доки. Почти *.tar.bz2, тока архиватор другой =) Поидее надо 7z фигарить, но с ним сейчас у меня туговато, так что архивлю пока в RAR.

  10. Igor said

    какой в задницу 7z?! zip или tar | gzip или bzip. Зачем что-то ещё?
    У меня на googlepages файл уже много месяцев лежит, всё с ним в порядке.

  11. Oleg said

    ну аот нравится мне 7z, юзаю его тока так =)

  12. ram32 said

    Неее, tar.bz2 рулит по любому! )))
    RAR отправим в печку, где ему самое и место ;)

  13. Oleg said

    Да ХЗ, на tbz2 народ чё-то жэаловаося уже, дескать аирила внутри в мастдае хренова распаковывается :-?

  14. ram32 said

    Олег, я не юзаю Иру и MPD, я просто тебя поддерживаю в благих начинаниях :)

  15. ram32 said

    Пусть народ в маздае почаще обновляет быдлоархиваторы ;)

  16. Igor said

    А ещё меня добивают люди, которые создают архив с русскими каталогами, это просто финиш. А архиватор должен быть свободным, в отличие от rar.

  17. ram32 said

    Игорь, секретаршам, мягко говоря, посрать на валидность — открывается их архив в маздайке и ладно… :-/

  18. Oleg said

    Вообщет есть Юникод и вот нех гнать на кирилицу в именах — эт тока в DOS’е и прочей древности с этим была жопа. Скажем, МастДай как ни странно держит Юникод уже 15 лет (вся линейка WinNT). У никсов с этим хуже, гораздо хуже. Фактически многие разработчики на это просто положили сами знаете что, сказав что «если оно вам так надо, вот и делайте поддержку сами в своих прогах». Правда прогресс тоже есть и уже бОльшая часть бмблиотек/компилей/прог с Юникодом дружит.
    Насчёт проприетарности — «мой любимый архивер» 7-zip есть открытая разработка. Доступен в сырцах под МастДай, порт под никсы и SDK чтоб в свой софт встраивать. RAR, который идёт на втором месте тож открыт — есть чёткая спецификация формата файлов, сырцы распаковщика и библиотеки поддержки. Сырцы паковщика не доступны, но сам-то фрмат открыт. Да и ник-то не заставляет юзать реализацию Рошаля и тем более патить ему деньги — это вам не tar который хрен заюзаешь без лицензии SCO, и который GNU было вынуждено переписывать в другой вариант аж с несовместимым форматом файлов по уже названной причине.
    Ну всёж нравится мне LZMA — оно быстро и жмёт эффективно. Еслиб Bzip2 или GZip давали такие же результаты, юзал бы их, но им это не дано. Увы… Кстати, некоторые открытые проекты переходят на LZMA, скажем LiteStep юзает его для хранения своих тем =) Я не гонюсь за весом (скажем, kgb, тож открыт и жмёт ещё лучше, но при этом раз в 30 медленнее) здесь просто эффективность больше).
    Саня, я не пишк ничего для секретарш =) Проходя практику на таможне, я понял что им вообще всё равно — м мона и линух поставить, сделать ярлык для косынки да OO переименованного в Ворд, она даж не запалят ;-)

  19. Igor said

    где же открытый упаковщик в рар?
    Как ты себе представляешь, что система держит юникод? Что в ядре есть его поддержка? Ну есть, наверное. В Линуксах тоже есть. А программы? То-то в каком-нибудь винампе юникодные теги появились очень недавно… А быдлоаська? Как у неё с юникодом?

  20. Oleg said

    Игорь, вспомни разницу между API-вызовами *W и *A в винде. Вот это я помимаю «система держит» — когда любой вызов в WinNT расситывает на строку в Юникоде. И лоя совместимости со старым оставлено *A.

    Насчёт никсов отставание заметно — к повсеместному переходу на него то же линух готов лишь год-два, до этого поддержка была но её почти никто не юзал — с старой koi8-r проблем меньше было.

    Юникодовые теги — id3v2. В id3v1 толкают Юникод тока долбоёьы — там должно быть тока iso8859-1 aka латиница первонаховая, стандарт таков.

    Насчёт быдлоаськи — сам знаешь как я её ща юзаю %)

  21. Igor said

    Понятия не имею о системных вызовах где бы то ни было. Отмечу, что проблем в системе нет. Ни в одной. Есть проблемы с прикладными программами. Везде.
    winamp до недавнего времени не поддерживал юникод в id3v2.

  22. […] мой плагин к X-Chat для MPD, давно заброшен и м/б даж уже не работающий […]

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s