Pixilang v3.0 alpha 0.002

Pixilang по русски
User avatar
NightRadio
Site Admin
Posts: 3944
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Pixilang v3.0 alpha 0.002

Post by NightRadio »

Очередная альфа. По прежнему консольный вариант.
http://www.warmplace.ru/soft/pixilang3/ ... a0.002.zip

Исправлена кое-какие баги.
Добавлены функции argc() и argv().
argc() - возвращает количество аргументов, переданных программе в командной строке.
argv( номер аргумента ) - возвращает указанный аргумент.
Например, argv( 0 ) возвратит строку "pixilang.exe" или что-то в этом духе.
argv() создает новый контейнер для хранения строки. Его нужно удалять вручную: arg = argv(0) remove(arg).
Добавлен пример command_line_arguments.txt, домонстрирующий эти две функции.

Виндовую версию тоже собрал, но у меня через Wine она как-то странно работает. Такое ощущение, что игнорирует переводы строки. Соответственно, почти ни один пример корректно не работает. Если кому-нибудь удастся этот вопрос прояснить, буду благодарен.
Several light
Posts: 68
Joined: Sun Jun 28, 2009 11:07 pm

Re: Pixilang v3.0 alpha 0.002

Post by Several light »

На вскидку есть идейка. В виндах перевод строки реализован двумя символами, перехода на на новую строку и перевода курсора то ли в конец то ли в начало строки они идут везде вместе и олицетворяют перевод строки даже в консоле. Не помню точную последовательность но могу посмотреть если такой вариант ещё не рассматривался.

P.S. В линуксах только один символ для перевода строки поэтому читать проги написанные под линуксом крайне неудобно.
User avatar
NightRadio
Site Admin
Posts: 3944
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by NightRadio »

Да, если не ошибаюсь, в юниксах перевод делается символом /n, а в винде /r/n. И тот и другой в Pixilang предусмотрены. Другое дело, что это касается больше всяких текстовых документов. А на счет консоли я не уверен. Просто пока под рукой нет "живой" винды, не могу проверить.
Several light
Posts: 68
Joined: Sun Jun 28, 2009 11:07 pm

Re: Pixilang v3.0 alpha 0.002

Post by Several light »

Специально раде эксперемента запустил на винде... дальше окна выбора программы не идёт вообще никуда.
Мож чего-то не правильно делаю...
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by J3d1 »

Странно, в вендовой консоли \n тоже всегда нормально работал. В С-функциях: printf() к примеру. И при печати в файл.
Другой вопрос, что кирилицу там надо в DOS-866 codepage печатать, но в нашем случае это, видимо, не важно.
Several light
Posts: 68
Joined: Sun Jun 28, 2009 11:07 pm

Re: Pixilang v3.0 alpha 0.002

Post by Several light »

Вообще то длумаю, что сие творение не имее тоношения к досовской консоли сэмулированной в виндах. Но насколько помню когда последний раз пользовался функцией msgBox она понимала символ \n под виндами в истинно линуксовском его смысле.
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by Zuf »

Вау ;) Вижу есть прогресс ;)

Нашел неприятную ошибку.
Если запустить пикси, когда alsa-устройство занято (например играет плеер), то пикси сразу закрывается, не исполняя программы.

SunDog Engine / May 5 2010
MAIN: device start
MAIN: screen_xsize = 320
MAIN: screen_ysize = 240
MAIN: system palette init
MAIN: wmanager initialized
ALSA ERROR: Can't open audio device plughw:0,0: Device or resource busy
ALSA ERROR: Can't open audio device hw:0,0: Device or resource busy

SDL_Quit()...
Removing SDL mutexes...
MEMORY CLEANUP (DYNAMIC)
FREE 32768 device_sound_st
Max dynamic memory used: 33046
Max storage memory used: 0
32768 0

P.S. Вообще у меня тут через dmix alsa настроена и несколько процессов могут параллельно звук играть.
User avatar
NightRadio
Site Admin
Posts: 3944
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by NightRadio »

Из лога вижу, что пикси пытался открыть два устройства по умолчанию: plughw:0,0 и hw:0,0. Попробуй в конфиге (pixilang_config.ini) прописать audiodevice hw:1,0
Если сработает, то я это устройство тоже в дефолты пропишу, чтобы в будущем проблем не возникало :)
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by Zuf »

Попробовал, правда на работе на другом компе.

audiodevice hw:1,0
./pixilang_linux_x86_64
SunDog Engine / May 5 2010
MAIN: device start
MAIN: screen_xsize = 320
MAIN: screen_ysize = 240
MAIN: system palette init
MAIN: wmanager initialized
ALSA lib pcm_hw.c:1401:(_snd_pcm_hw_open) Invalid value for card
ALSA ERROR: Can't open audio device hw:1,0: No such file or directory
ALSA ERROR: Can't open audio device plughw:0,0: Device or resource busy
ALSA ERROR: Can't open audio device hw:0,0: Device or resource busy

SDL_Quit()...
Removing SDL mutexes...
MEMORY CLEANUP (DYNAMIC)
FREE 32768 device_sound_st
Max dynamic memory used: 33065
Max storage memory used: 0
32768 0


audiodevice hw:0,0
./pixilang_linux_x86_64
SunDog Engine / May 5 2010
MAIN: device start
MAIN: screen_xsize = 320
MAIN: screen_ysize = 240
MAIN: system palette init
MAIN: wmanager initialized
ALSA ERROR: Can't open audio device hw:0,0: Device or resource busy
ALSA ERROR: Can't open audio device plughw:0,0: Device or resource busy

SDL_Quit()...
Removing SDL mutexes...
MEMORY CLEANUP (DYNAMIC)
FREE 32768 device_sound_st
Max dynamic memory used: 33065
Max storage memory used: 0
32768 0


Я в интерфейсах ALSA не силен, не могу ничего предположить...
Наверное стоит глянуть какую нибудь справку о написании софта под ALSA...
User avatar
NightRadio
Site Admin
Posts: 3944
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by NightRadio »

На последней машине случайно Pulse не стоит? :) А то это сейчас модная штука, включают ее в качестве основной звуковой системы. А с эмуляцией ALSA у нее не ладится.
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by Zuf »

Нет pulse нету. И насколько я знаю pulseaudio работает поверх алсы, хотя может путаю.

С audiodevice default в ini заработал нормально.

SunDog Engine / May 5 2010
MAIN: device start
MAIN: screen_xsize = 320
MAIN: screen_ysize = 240
MAIN: system palette init
MAIN: wmanager initialized
ALSA Sample rate: 44100
ALSA Buffer size: 3763 samples
Sound stream initialized
SOUND: sound_stream_close() begin
SOUND: sound_stream_close() end
SDL_Quit()...
Removing SDL mutexes...
Max dynamic memory used: 415078
Max storage memory used: 32000
0 0



P.S. Немного порылся по поводу работы с alsa. В частности искал как список устройств находить и т.п.
Легкого пути не нашел. Нашел две полезные вещи:
http://rus-linux.net/lib.php?name=/MyLD ... -apis.html - может быть полезен раздел «Хотите узнать больше о безопасной части ALSA?»
В утилите aplay есть финкционал отображения списка устройств (aplay -l / aplay -L).
Кусок его исходного кода: http://alsa-utils.sourcearchive.com/doc ... ource.html - см функцию static void pcm_list(void)
User avatar
NightRadio
Site Admin
Posts: 3944
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by NightRadio »

Спасибо за ссылочки! Чуть позже гляну
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by J3d1 »

Выйдет-ли?
User avatar
NightRadio
Site Admin
Posts: 3944
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by NightRadio »

Извиняюсь за задержку. Что выйдет - это без сомнений. Но сроки пока приходится сдвигать, слишком много сил уходит на работу с SunVox.
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Pixilang v3.0 alpha 0.002

Post by J3d1 »

Писал функцию float_to_str и возник такой вопрос: -как из float выделить целую часть, или хотя-бы узнать содержит ли float ненулевую дробную часть?

такой вариант не работает

Code: Select all

con=new(1,1,INT32)
fl=5.6
con[0]= fl
if con[0]==fl 
  {
    fputs("O-ops, they are equal", outfile) fputs("\n\n", outfile
  }
такой тоже выдает: O-ops, they equal

Code: Select all

con=new(1,1,FLOAT32)
fl=5.6
con[0]= fl
resize(con,1,1,INT32)
if con[0]==fl
{
fputs("O-ops, they are equal", outfile) fputs("\n\n", outfile)
}
Подскажите пожалуйста как сделать?
Post Reply