Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Приложение для DreamShell
Автор Сообщение
megavolt85 Не на форуме
Супермодератор
******

Сообщений: 3151
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 185
Поблагодарили 1559 раз(а) в 917 сообщ.
Сообщение: #161
RE: Приложение для DreamShell
Тогда смотри в сторону ярлыков, найди в module.c строчку while((ent = fs_readdir(fd)) != NULL) , это добавление пользовательских скриптов (lua и dsc) на рабочий стол, так же можно примудрить ярлыки, ну или используй dsc скрипты, напиши программку создающую dsc скрипт (по сути это текстовый документ).

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
21.08.2015 16:17
Найти все сообщения Цитировать это сообщение
SuperClaw Не на форуме
Продвинутый
***

Сообщений: 280
Зарегистрирован: 13.02.2013
Рейтинг: 0
Сказал спасибо: 7
Поблагодарили 7 раз(а) в 7 сообщ.
Сообщение: #162
RE: Приложение для DreamShell
а где находятся тела функций fs_readdir() и fs_open()?

просто, чтобы приложение отображало свои ярлыки, для начала нужно, чтобы оно НЕ отображало ярлыки основные
(Последний раз сообщение было отредактировано 22.08.2015 в 05:40, отредактировал пользователь SuperClaw.)
22.08.2015 05:37
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #163
RE: Приложение для DreamShell
В ядре DS находится все что ты вызываешь, кроме того что написал сам.
Конкретно эти функции относятся к KallistiOS - http://gamedev.allusion.net/docs/kos-current/fs_8h.html

[Изображение: barbers.png]
22.08.2015 08:33
Вебсайт Найти все сообщения Цитировать это сообщение
SuperClaw Не на форуме
Продвинутый
***

Сообщений: 280
Зарегистрирован: 13.02.2013
Рейтинг: 0
Сказал спасибо: 7
Поблагодарили 7 раз(а) в 7 сообщ.
Сообщение: #164
RE: Приложение для DreamShell
я понял, fs_open() берет путь папки из переменной path, но при этом после объявления этой переменной, ей ничего не присваивается.. Она тоже уже где-то глобально объявлена? Можно ли ей вручную прописать путь? я пробовал перед строчкой fd = fs_open() добавлять и path = "sd\ds\apps\test", и path = "sd/ds/apps/test" - безрезультатно, компилятор ругается..

еще пробовал для эксперимента path = app.getenv("PATH")
(Последний раз сообщение было отредактировано 22.08.2015 в 12:03, отредактировал пользователь SuperClaw.)
22.08.2015 12:02
Найти все сообщения Цитировать это сообщение
megavolt85 Не на форуме
Супермодератор
******

Сообщений: 3151
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 185
Поблагодарили 1559 раз(а) в 917 сообщ.
Сообщение: #165
RE: Приложение для DreamShell
Не правильно понял.

Код:
file_t fd;                  // файловый дескриптор
dirent_t *ent;
char path[MAX_FN_LEN];   // переменная для пути к файлу

snprintf(path, MAX_FN_LEN, "%s/apps/test/", getenv("PATH"));   // копируем в переменную путь к нужной нам папке

fd = fs_open(path, O_RDONLY | O_DIR); // открываем для чтения папку

if(fd == FILEHND_INVALID){   // если папка не открылась
  
    ds_printf("DS_ERROR: Can't open directory\n")  //выводим в консоль сообщение о ошибке
    return CMD_ERROR; // возвращаем ошибку
}

while((ent = fs_readdir(fd)) != NULL) {  // читаем содержимое папки пока не дойдём до последнего файла

     ds_printf("%s\n", ent->name);  // выводим в консоль имя текущего файла
}

fs_close(fd);   // закрываем файл
return CMD_OK; //возвращаем успешное завершение

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
(Последний раз сообщение было отредактировано 22.08.2015 в 20:56, отредактировал пользователь megavolt85.)
22.08.2015 20:43
Найти все сообщения Цитировать это сообщение
SuperClaw Не на форуме
Продвинутый
***

Сообщений: 280
Зарегистрирован: 13.02.2013
Рейтинг: 0
Сказал спасибо: 7
Поблагодарили 7 раз(а) в 7 сообщ.
Сообщение: #166
RE: Приложение для DreamShell
выходит, snprintf() помимо вывода на экран еще и присваивать умеет?

а если я хочу путь "%s/apps/test/" записать в отдельный файл, а оттуда добавить в функцию, мне в кавычках его писать или без?
(Последний раз сообщение было отредактировано 23.08.2015 в 06:43, отредактировал пользователь SuperClaw.)
23.08.2015 06:40
Найти все сообщения Цитировать это сообщение
megavolt85 Не на форуме
Супермодератор
******

Сообщений: 3151
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 185
Поблагодарили 1559 раз(а) в 917 сообщ.
Сообщение: #167
RE: Приложение для DreamShell
(23.08.2015 06:40)SuperClaw писал(а):  выходит, snprintf() помимо вывода на экран еще и присваивать умеет?

это две совершенно разные функции
printf()
sprintf()
snprintf отличается от sprintf тем, что в snprintf можно указать максимальную длину копируемых символов

(23.08.2015 06:40)SuperClaw писал(а):  а если я хочу путь "%s/apps/test/" записать в отдельный файл, а оттуда добавить в функцию, мне в кавычках его писать или без?

Вот так в лоб из файла строчку не дёрнуть.

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
23.08.2015 12:44
Найти все сообщения Цитировать это сообщение
SuperClaw Не на форуме
Продвинутый
***

Сообщений: 280
Зарегистрирован: 13.02.2013
Рейтинг: 0
Сказал спасибо: 7
Поблагодарили 7 раз(а) в 7 сообщ.
Сообщение: #168
RE: Приложение для DreamShell
так ведь можно же так:

char testpath[30];
ifstream test.open("test.txt");
test.getline(testpath, 30);
test.close();
snprintf(path, MAX_FN_LEN, testpath, getenv("PATH"));

или не прокатит?
23.08.2015 13:53
Найти все сообщения Цитировать это сообщение
megavolt85 Не на форуме
Супермодератор
******

Сообщений: 3151
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 185
Поблагодарили 1559 раз(а) в 917 сообщ.
Сообщение: #169
RE: Приложение для DreamShell
Тогда в текстовике должно быть /apps/test/
snprintf(path, MAX_FN_LEN,"%s%s" , getenv("PATH") , testpath);

ну и конечно не забывай что test.getline(testpath, 30); это не си это с++
в си можно fgets использовать

Взгляни на код приложения настроек, функция LoadSetting() и SettingsApp_SaveSetting ,сохранение на носитель с 547-ой строки


Прикрепления
.zip  module.c.zip (Размер: 4.97 Кб / Загрузок: 4)

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
(Последний раз сообщение было отредактировано 23.08.2015 в 15:51, отредактировал пользователь megavolt85.)
23.08.2015 15:32
Найти все сообщения Цитировать это сообщение
 Сказали спасибо: SuperClaw
aldair Не на форуме
Опытный
****

Сообщений: 754
Зарегистрирован: 03.02.2012
Рейтинг: 7
Сказал спасибо: 86
Поблагодарили 259 раз(а) в 192 сообщ.
Сообщение: #170
RE: Приложение для DreamShell
(08.12.2014 08:51)SWAT писал(а):  You can use "path" variable for disk image path too:

Код:
os.execute("isoldr -a -c -x 0x8c004000 -e 2 -j 2 -f "..path.."/gdi2/3rdStrike/disk.gdi");

It's can help in the future use your scripts for any device.
os . execute ( "isoldr -o 2 -a -x 0x8cfe8000 -e 8 -j 0 -f /ide/18Wheeler/disk.gdi" );

how to put "true"?
01.05.2016 06:27
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #171
RE: Приложение для DreamShell
(01.05.2016 06:27)aldair писал(а):  
(08.12.2014 08:51)SWAT писал(а):  You can use "path" variable for disk image path too:

Код:
os.execute("isoldr -a -c -x 0x8c004000 -e 2 -j 2 -f "..path.."/gdi2/3rdStrike/disk.gdi");

It's can help in the future use your scripts for any device.
os . execute ( "isoldr -o 2 -a -x 0x8cfe8000 -e 8 -j 0 -f /ide/18Wheeler/disk.gdi" );

how to put "true"?

What a "true"? True async DMA? Just add flag "-a" without "-e N".

[Изображение: barbers.png]
01.05.2016 08:12
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Need help building Dreamshell Rio 10 3476 01.07.2024 09:11
Посл. сообщение: SWAT
  DreamShell dev environment setup on macOS VeraBecker 17 10914 19.09.2023 06:25
Посл. сообщение: SWAT
  DreamShell 4.0 - XML Doc SWAT 6 36671 06.04.2015 13:41
Посл. сообщение: SWAT
  DreamShell 4.0 - Module dev SWAT 8 33259 23.12.2013 13:20
Посл. сообщение: SWAT
  Dreamshell BETA3/BETA4 Direct Swap atreyu187 3 20792 09.09.2011 14:27
Посл. сообщение: SWAT
  DreamShell 4.0 - App dev SWAT 3 23338 22.06.2011 23:09
Посл. сообщение: Jirohn
  DreamShell 4.0 - Bug Report SWAT 54 176427 28.03.2011 07:24
Посл. сообщение: SWAT
  Разработка блокнота для DreamShell zaero 28 93847 31.01.2011 16:02
Посл. сообщение: SWAT
  DreamShell 4.0 - Beta Testing SWAT 76 243853 14.07.2010 20:58
Посл. сообщение: SWAT
  DreamShell 4.0 SWAT 43 145904 05.02.2010 07:10
Посл. сообщение: SWAT

Переход:


Пользователи просматривают эту тему: 1 Гость(ей)