Просмотр задачи

0000847SimpleWest[SimpleWest] Предложениепубличная2015-01-02 16:54
Состояние назначенаРешениеотказ в исправлении 
Версия продукта 
Целевая версияРешена в версии 
Тема0000847: SimpleWest - Architecture, Design guidance, API & functions
ОписаниеDescription of the major ideas SimpleWest pack has been built around.
Major building blocks as logical layers, working with SimpleTV core, database access, directory structure, plugs architecture.
What to know to build your own service, and how-to.

Please do not post comments here, just to keep the subject as clean as possible.
Post at http://iptv.gen12.net/bugtracker/view.php?id=723 for any questions and wishes you'd like to be explained here.
МеткиНет связанных меток.



2014-12-30 21:12


general scope.png (40,489 байт)
general scope.png (40,489 байт)


2014-12-30 21:12


scripts scope.png (24,993 байт)
scripts scope.png (24,993 байт)


2014-12-30 21:21

руководитель   ~0011246

On the general scope there are four major interconnected parts (see pictures in header):

1. VLC player core libraries with VLC standard plugins
2. SimpleTV executable tv.exe made by SergeyVS with a few specific plugins
3. Access file database TvData.mdb for settings & channels, also designed by ServeyVS
4. Lua scripts with a bit of html and JavaScript to provide flexibility and customization.


2014-12-30 22:20

руководитель   ~0011247

Lua scripts part is the place anyone can start customizations, change the player layouts/skins, add extra plugs (I'll call these modules as services interchangeably), add or change thumbnails or channels' logos, etc.

The scripts can be separated logically and on the file system level.
Logically there are the following levels:

1. Root level that handles the plumbing between SimpleTV C language with lua script operational logic. Physically, that's 'luaScr' root directory with a few lua files inside. The files' names are important as the SimpleTV executable calls those scripts depending on the required operation, like offering to change resource address or notify on event.

2. The core SimpleWest pack services are the logical entities that are serving the most common scripting tasks for other user scripts, including but not limiting to common reusable code routines, such as handling persistent settings, logging, functions for notifications messages, fetching playlists, composing preference dialogs, etc. These services are usually placed into their own folders under 'user' directory, the folders are named starting with small letter, while the custom user added services start with capital letter. There are exceptions, e.g. AceStream service that actually should be the core part of SimpleTV as all torrent stream control and messages exchange with the ace engine is hided inside tv.exe module. There is the clear logical hierarchy of lua scripts in SimpleWest pack:
- 'lib' folder is used for general scripts, routines and libraries that are independent of scripts under 'user' folder
- 'user' folder has its own logical hierarchy:
  a. 'common' sub-folder is on the highest level, next is
  b. 'credentials' and 'providers' folders as the core for other user services. Folder 'streaming' contains user interface to control VLC stream output to external devices and is rather independent from others.

3. Extra services will plug (or activate) by simply moving their dedicated folders either directly under 'user' or 'user\video' directories, depending on the service:
  c. 'video' folder contains the special composite service that is used to place small single file scripts to handle getting the addresses to make stuff from different content providers playable.
  d. More complex content providers that have/require their own preferences panel plugged into SimpleTV extendable user interface, have their own dedicated folder each right under 'user' folder.


2015-01-02 16:54

руководитель   ~0011259

Последние изменения: 2015-01-02 17:05

Просмотр 3 редакций

The folder named 'work' is the root of the user profile. The special attention has been made that writing files should happen only inside this folder or its subfolders. You should make sure the folder 'work' has writing access to all SimpleWest pack users. Thus, writing log file, dumping channel lists, changing VLC specific settings, fetching EPG lists, all happens inside the user profile.

Sure, if required, you may switch the current user profile by specifying folder 'work' sibling folder with another name passed as SimpleTV tv.exe command line parameter. But then you'll have to extend the luaScr\startup.lua profileRoot variable to accommodate such multiprofile support (that probably would require minimal support from SimplTV tv.exe about the command line parameters passed on).

История изменений

Дата изменения Пользователь Поле Изменить
2014-12-24 22:59 caxap Новая задача
2014-12-24 22:59 caxap Состояние новая => назначена
2014-12-24 22:59 caxap Ответственный => caxap
2014-12-24 23:42 caxap Описание изменено Просмотр редакций
2014-12-25 00:07 caxap Влияние малое => нововведение
2014-12-25 00:07 caxap Решение открыта => отказ в исправлении
2014-12-25 00:43 caxap Тема SimpleWest - Architechture, Design guideness, API & functions => SimpleWest - Architechture, Design guidance, API & functions
2014-12-25 00:45 caxap Тема SimpleWest - Architechture, Design guidance, API & functions => SimpleWest - Architecture, Design guidance, API & functions
2014-12-30 21:12 caxap Файл добавлен: general scope.png
2014-12-30 21:12 caxap Файл добавлен: scripts scope.png
2014-12-30 21:21 caxap Комментарий добавлен: 0011246
2014-12-30 22:20 caxap Комментарий добавлен: 0011247
2014-12-30 22:24 caxap Описание изменено Просмотр редакций
2015-01-02 16:54 caxap Комментарий добавлен: 0011259
2015-01-02 17:03 caxap Комментарий изменен: 0011259 Просмотр редакций
2015-01-02 17:05 caxap Комментарий изменен: 0011259 Просмотр редакций