
MythStream non-PERL parsers
=================================================================
Written by : Eric Giesselbach 2006
Home       : http://home.kabelfoon.nl/~moongies/streamtuned.html
License    : GNU GPL
=================================================================

1.  Intro
2.  Installation
3.  Further development



Intro
=====
MythStream has three parser interfaces:
PERL  - calls: perl <perl script parser> <parameter> <parameter>
EXEC  - calls: <binary parser> <parameter> <parameter>
SHELL - calls: sh -c "<any executable parser <parameter> \"<parameter>\" >"

PERL is default.


Installation
============
To activate one of the non-PERL interfaces in mythstream uncomment/comment
the corresponding lines in settings.pro before compiling mythstream:

  #DEFINES += PARSER=PERL
  #DEFINES += PARSER=SHELL
  DEFINES += PARSER=EXEC

Only one interface can be used at a time.

---

There are some binary parsers (for PARSER=EXEC) available in the alt_parsers
directory. To install comment/uncomment the proper line in mythstream.pro
before compiling mythstream.

---

Notes:

- If you compiled mythstream before activating these options, run
    make distclean
      or
    remove mythstream/Makefile and mythstream/harvester.o
    
- During make install, the parsers are installed along with their perl
  versions to /usr[/local]/share/mythtv/mythstream/parsers/
  
- MythStream transfers parsers to the ~/.mythtv/mythstream/parsers
  directory on first run. After that you have to transfer them manually.
  
- To (re)compile the parsers without mythstream run qmake alt_parsers.pro
  and make install in the alt_parsers directory
  
- If a parser below ~/.mythtv/mythstream/parsers/ is deleted, mythstream
  will fallback to the parser in the /usr/... directory. If that fails, it
  will use the default parser for the used interface (default[.pl|.sh]).



Development
===========

If you want to have all parser interfaces available at runtime so you can
mix parsers, I suggest you add parser discovery to harvester.cpp (e.g. search
for available filename extensions and perl/other scripting capability).

If this should become default for all users, it requires more complex install
logic (detection of scripts and security, check the basic shell
escaping in harvester.cpp).













