Tvheadend TV streaming server
=============================
- (c) 2006 - 2010 Andreas Öman, et al.
-
+ (c) 2006 - 2012 Andreas Öman, et al.
How to build for Linux
$ ./configure
-If any dependencies are missing the configure script will complain.
-You then have the option to disable that particular module/subsystem.
+If any dependencies are missing the configure script will complain or attempt
+to disable optional features.
$ make
-Build the binary, after build the binary resides in 'build.Linux/'.
+Build the binary, after build the binary resides in 'build.linux/'.
Thus, to start it, just type:
-$ build.linux/tvheadend
+$ ./build.linux/tvheadend
Settings are stored in $HOME/.hts/tvheadend
-For more information and latest versions, please visit:
-http://www.lonelycoder.com/hts/
+Further information
+===================
+
+For more information about building, including generating packages please
+visit https://www.lonelycoder.com/redmine/projects/tvheadend/wiki/Building
<dd>
Only match events from the given channel.
+ <dt>Series Link
+ <dd>
+ Checkbox indicates that a series link (using EPG provided info) is being
+ used, rather than a simple title match. The title field is still populated,
+ for clarity, with the title of the event used to create the series link.
+
<dt>Channel tag
<dd>
Only match events from the channels which are included in the given tag.
Tags are used for grouping channels and is configured by the administrator.
- <dt>Content group
+ <dt>Genre
<dd>
Only match events belonging to the given content group.
<dd>
Only record events if they are scheduled +-15 minutes from this given time.
+ <dt>Priority
+ <dd>
+ The priority to give any recordings scheduled by this auto recording rule.
+
+ <dt>DVR configuration
+ <dd>
+ Select the DVR configuration profile to be used for scheduled recordings.
+
<dt>Created by
<dd>
Free text field, but will be copied to the recording session.
<dt>Video Recorder
<dd>
- Enables access to all video recording functions. This also include administration
- of the auto recordings.
+ Enables access to all video recording functions. This also include administration of the auto recordings.
+
+ <dt>All Configs (VR)
+ <dd>
+ Allow use of and configuration of DVR configuration profiles.
<dt>Web interface
<dd>
Changing name of a channel does not interfere with scheduled
recordings etc.
- <dt>XML-TV Source
- <dd>Name of the XML-TV channel. If you have XML-TV enabled you can
- select which XML-TV channel to obtain data from. By default
- Tvheadend tries to match the name itself, but sometimes it might
- not match between the XML-TV source and the TV provider so in
- such cases you can change it yourself.
+ <dt>Play
+ <dd>Play the channel using the VLC plugin (if available) else it will
+ display a direct link that can be used to open in preferred media
+ player.
+
+ <dt>EPG Grab Source
+ <dd>Name of the Internet based EPG provider (typically XMLTV) channel
+ that should be used to update this channels EPG info.
+ By default Tvheadend tries to match the name itself, but sometimes
+ it might not match correctly in which case you can do the mapping
+ manually.
+ <p>
+ Over the air (OTA) sources do NOT need to be mapped in this way, the
+ linking is implicitly tied since they are all part of the DVB system.
<dt>Tags
<dd>Each channel can be bound to a zero, one or many tags.
<dt>Adapter name
<dd>
- You can change the display name for the adapter.
+ You can change the display name for the adapter. This is highly recommended
+ for multi-adapter setups with adapters that report the same name to avoid
+ confusion.
<dt>Autodetect muxes
<dd>
on the same network. If this checkbox is enabled, Tvheadend will
automatically create new muxes as it receives configuration for them
via the DVB networks.
+
+ <dt>Skip initial scan
+ <dd>
+ By default Tvheadend will rescan all muxes before more detailed background
+ scanning (including EPG scans) can be properly started. This is to verify
+ all muxes are still valid.
+ <br/>
+ This will not stop the ability to watch live TV, however for most setups
+ this option can be checked.
<dt>Idle scanning
<dd>
muxes and tune to them to verify that they are still working.
If your adapter have problems with lots of tuning, try to disable this.
- <dt>Detailed logging
+ <dt>Close device handle when idle
+ <dd>
+ This will attempt to close all available device handles. This can be
+ necessary to allow some devices to go into low power states.
+ <br/>
+ However this option has been known to cause problems with some multi tuner
+ DVB cards. If you have signal problems, try disabling this option.
+ <br/>
+ Note: this option has no effect if idle scanning is enabled.
+
+ <dt>Skip service availability check when mapping
+ <dd>
+ By default Tvheadend will validate that a service can be correctly
+ received (including any descrambling) when mapping channels. You can disable
+ this checking by enabling this option.
+
+ <dt>Use SID as channel number during mapping
+ <dd>
+ If you enable this option then the initial mapping of channels will use
+ the service ID as the channel number, should no local channel number be
+ provided in the service information tables.
+
+ <dt>Monitor signal quality
+ <dd>
+ If you enable this option Tvheadend will attempt to monitor signal quality
+ of a mux using an internal metric. If the calculated quality falls to low
+ the mux/adapter will generally be ignored.
+
+ <dt>Disable PMT monitoring
+ <dd>
+ This disable monitoring Program Map Table (PMT) for all services on a mux.
+ <br/>
+ Most people should not require this, but because this involves creating a
+ lot of table filters, some DVB cards have problems and report errors related
+ to too many open file descriptors. If this happens try enabling this option.
+
+ <dt>Write full DVB MUX to disk
+ <dd>
+ If this is enabled, Tvheadend will store the full mux stream to disk for
+ debugging and development purposes. Don't enable this unless you know what
+ you're doing.
+
+ <dt>Original Network ID
+ <dd>
+ If you experience problems caused by overlaps between multiple network
+ providers this option can be used to filter which network ID is received
+ by a given adapter.
+
+ <dt>Extra priority
<dd>
- If this is enabled, Tvheadend will log more information related to
- this specific adapter. You might wanna enable this if you have some
- kind of issues in order to better diagnose the problems.
+ This field can be used to define a priority ordering for adapters. This will
+ be used when determining which adapter to use to service a subscription
+ request. It could be used for example to prefer a DVB-S adapter over a
+ DVB-T one.
+
+ <dt>DiSEqC version (DVB-S only)
+ <dd>
+ If you're using a DiSEqC switch, then specify the version here.
+
+ <dt>Turn off LNB when idle
+ <dd>
+ This option can be enabled to disable the power to the LNB when the adapter
+ is not in use. This can reduce power consumption, however for poorly shieled
+ multi tuner setups you may some inteference when the LNB is re-enabled.
+
</dl>
</dl>
<dt>Modulation
<dd>Information about the modulation used on the mux. Can not be changed
+
+ <dt>Polarisation
+ <dd>Information about the polarisation used on the mux. Can not be changed
+
+ <dt>Satellite config (DVB-S only)
+ <dd>The satellite configuration in use on this mux. Can not be changed.
+ <dt>Frontend status
+ <dd>The status of the frontend signal last time the mux was tuned. Can not be changed
+
<dt>Mux id
<dd>Unique ID for this mux in the dvb network. Can not be changed
<dt>Service name
<dd>Service name as given in the DVB stream. Can not be changed
+ <dt>Play
+ <dd>Open the VLC plugin window to play this service.
+
<dt>Channel name
<dd>Double-click on this column to map the service to a channel.
but fail to correctly announce it. To fix this you can set the default
charset to use when none is specified by the broadcaster.
- <dt>EIT
- <dd>Uncheck this if EIT data should not be retreived for this service.
+ <dt>EPG
+ <dd>Uncheck this if EPG data should not be retreived for this service.
<dt>Type
<dd>Type of service. Can not be changed
<dt>Information button
<dd>Press this to get a popup with more information about the service
</dl>
+</dl>
- <p>
- A word about DVB adapters
+<dl>
+ <dt>Satellite config (DVB-S only)</dt>
+ Satellite configurations in use on this adapter (for controlling
+ switch equipment). The default entry will work fine for non-switched
+ setups.
+
+ <ul>
+ <li>To edit a cell, double-click on it. After a cell is changed it
+ will flags one of its corner to red to indicated that it has been
+ changed. To commit these changes back to Tvheadend press the
+ 'Save changes' button. In order to change a Checkbox cell you only
+ have to click once in it.
+
+ <li>To delete one or more entries, select the lines (by clicking once on
+ them), and press the 'Delete selected' button. A popup
+ will ask you to confirm your request. Note, that if you have
+ automatic mux discovery enabled the mux will probably come back
+ quite soon.
+ </ul>
+
+ The columns have the following functions:
+
+ <dl>
+ <dt>Name
+ <dd>Descriptive name for this configuration
+
+ <dt>Switchport
+ <dd>Port number to select for this configuration (numbering begins at 0).
+
+ <dt>LNB type
+ <dd>Select the LNB type from the list of supported LNBs. If your LNB
+ is not supported please contact the Tvheadend team.
+
+ <dt>Comment
+ <dd>General comment to remind you what this is for.
+ </dl>
+</dl>
+
+ <h2>A word about DVB adapters</h2>
<p>
A DVB adapter represents a piece of hardware attached to the system.
DVB receivers with dual tuners will present themselves as two adapters
Warning2: Suspending a system is (from a USB driver perspective) equivalent
to a unplug/insert event. Thus, suspending a system running Tvheadend
with USB adapters is not recommended at the moment.
-</dl>
</div>
<dd>Path to where Tvheadend will write recorded events. If components of
the path does not exist, Tvheadend will try to create them.
+ <dt>Media container
+ <dd>Select the container format used to store recordings.
+
<dt>DVR Log retention time (days)
<dd>Time that Tvheadend will keep information about the recording in
its internal database. Notice that the actual recorded file will not
be deleted when the log entry is deleted.
+ <dt>Extra time before recordings (minutes)
+ <dd>Specify the number of minutes to record before the events scheduled
+ start time. Used to cope with small scheduling errors.
+
+ <dt>Extra time after recordings (minutes)
+ <dd>Specify the number of minutes to record after the events scheduled
+ stop time. Used to cope with small scheduling errors.
+
<dt>Make sub-directories per day
<dd>If checked, Tvheadend will create a new directory per day in the
recording system path. Only days when anything is recorded will be
<dd>If checked, Tvheadend will include the season and episode in the
title (if such info is available).
+ <dt>Remove all unsafe characters from filename
+ <dd>If checked, all characters that could possibly cause problems for
+ filenaming will be removed.
+
+ <dt>Replace whitespace in title with '-'
+ <dd>If checked, all whitespace characters will be replaced with '-'.
+
+ <dt>Tag files with metadata
+ <dd>If checked, media containers that support metadata will be tagged with
+ the metadata associated with the event being recorded.
+
<dt>Post-processor command
<dd>Command to run after finishing a recording. The command will be
run in background and is executed even if a recording is aborted
<p>
This tab is used to configure EPG grabbing capabilities. TVheadend supports
a variety of different EPG grabbing mechanisms. These fall into 3 broad
- categories, within which there are a variety of specific grabber implementations.
+ categories, within which there are a variety of specific grabber
+ implementations.
</p>
<h2>Grabber Types</h2>
<ul>
- <li>Over the Air (OTA) - these receive EPG data directly from the DVB network. This is often the easiest way to get up and running, and does provide timely updates should scheduling change. However the information isn't always as rich as some of the other grabbers.</li>
- <li>Interanl - These are grabbers which can be internally initiated from within TVheadend based on IP based grabbing solutions (see below). This can be a quick way to get richer EPG data where you don't have decent OTA support.</li>
- <li>External - These provide the option to run the grabber scripts externally and to pump the data into TVheadend via Unix domain sockets. It provides more complex configurations using things like cronjob's etc.</li>
+ <li>Over-the-Air (OTA) - These grabbers receive EPG data directly from the DVB network. This is often the easiest way to get up and running and does provide timely updates should scheduling change. However the information isn't always as rich as some of the other grabbers.
+ <li>Internal - These are grabbers which can be internally initiated from within TVheadend using a very simple scheduler. These are typically Internet based services. This can be a quick way to get richer EPG data where you don't have decent OTA support.
+ <li>External - These provide the option to run grabber scripts externally and to send data into TVheadend via Unix domain sockets. It provides the ability to run more complex configurations using things like cronjob's, script chains, etc.
</ul>
<h2>Grabber Modules</h2>
<ul>
<li>EIT - This is a DVB standards compatible EIT grabber. Typically it will
retrieve now/next information, though on some networks there may be more
- extensive data published.</li>
- <li>OpenTV - This is a proprietary OTA EPG grabber. Its known to be used on the SKY networks, but others may use it. You need two configuration files to define settings for your particular network, if you don't see yours listed please visit IRC #hts for help.</li>
- <li>XMLTV - This is a IP network based scraper, for more information about XMLTV please visit <a href="http://www.xmltv.org">http://www.xmltv.org</a>. To make use of the internal XMLTV grabber you must have tv_find_grabbers installed. If you install new grabbers you will need to restart TVheadend to pick these up asthey're loaded at startup.</li>
- <li>PyEPG - This is another IP network based scraper. It currently only supports the Atlas UK system (for which you need a key), but it does provide a very rich EPG data set. For more information see <a href='http://github.com/adamsutton/PyEPG'>http://github.com/adamsutton/PyEPG</a>.</li>
+ extensive data published.
+ <li>Freesat/view - This is an extended version of EIT that is used by the Free-to-air DVB providers in the UK. It includes additional information such as series links and episode identifiers.
+ <li>OpenTV - This is a proprietary OTA EPG grabber. Its known to be used on the SKY networks, but others may use it. You need two configuration files to define settings for your particular network, if you don't see yours listed please visit IRC #hts for help.
+ <li>XMLTV - This is am Internet based suite of scripts, for more information about XMLTV please visit <a href="http://www.xmltv.org">http://www.xmltv.org</a>. To make use of the internal XMLTV grabber you typically require the xmltv-utils package to be installed. If you install new grabbers you will need to restart TVheadend to pick these up as they're loaded at startup. If you see no XMLTV grabbers listed then most probably XMLTV is not properly installed and in the PATH.
+ <li>PyEPG - This is another Internet based scraper. It currently only supports the Atlas UK system (for which you need a key), but it does provide a very rich EPG data set. For more information see <a href='http://github.com/adamsutton/PyEPG'>http://github.com/adamsutton/PyEPG</a>.</li>
</ul>
<h2>Configuration options</h2>
- <p>
+
+ <h3>General Config</h3>
+ <dl>
+ <dt>Update channel name
+ <dd>Automatically update channel names using information provided
+ by the enabled EPG providers.
+ <dt>Update channel number
+ <dd>Automatically update channel numbers using information provided
+ by the enabled EPG providers.
+ <dt>Update channel name
+ <dd>Automatically update channel icons using information provided
+ by the enabled EPG providers.
+ </dl>
+
+ <h3>Internal Grabber</h3>
<dl>
<dt>Module:
<dd>Select which internal grabber to use.
<dt>Grab interval
- <dd>Time period between grabs.
-
- <dt>External interfaces
- <dd>Check tick boxes for whichever you want to make available, the Path column displays where the unix socket you need to use lives.
-
- <dt>OTA interfaces
- <dd>Check tick boxes for whichever you want to use.
-
+ <dd>Time period between grabs. Value and unit are indepdently set.
</dl>
- Changes to any of these settings must be confirmed by pressing the
- 'Save configuration' button before taking effect.
- </p>
-
+
+ <h3>Over-the-air Grabbers</h3>
+ <p>
+ Checkbox list to enable/disable available modules.
+ By default all grabbers should be enabled.
+
+ <h3>External interfaces</h3>
+ <p>
+ Checkbox list to enable/disable available modules. The path field
+ contains the absolute path of the unix domain socket into which EPG
+ data can be sent.`
+ <p>
+ To send data to the socket use the command "netcat -u SOCKET_PATH".
+ <br/>
+ Note: for some systems the netcat flags can vary so please consult the
+ man page.
+
<h2>Notes</h2>
+
+ <p>
+ To apply any changes please use the [Save configuration button]
<p>
XMLTV/PyEPG - if you are using the internal versions of these modules then
- you must first configure them (if required) externally as TVHeadend provides
- no support for this. Once configured though TVheadend will do the rest.
- </p>
-
- <p>
- Mixed grabbers - Although as much as possible is done to avoid contention, generally speaking using a mixture of grabbers should be avoided (where each grabber updates the same channels). They typically tend to contain differing information which results in them "fighting" over which information is correct and can result in a high level of EPG update messages.
+ you must first configure them externally as Tvheadend provides
+ no support for this. Nor does it provide the ability to pass command line
+ options (for this use the external interface).
</p>
</div>
--- /dev/null
+<div class="hts-doc-text">
+
+Tvheadend support receiving streams from compatible IPTV services. Currently
+the only compatible services are those that broadcast using MPEGTS over
+multicast UDP.
+
+<p>
+The services are listed / edited in a grid.
+
+<ul>
+ <li>To edit a cell, double click on it. After a cell is changed it
+ will flags one of its corner to red to indicated that it has been
+ changed. To commit these changes back to Tvheadend press the
+ 'Save changes' button. In order to change a Checkbox cell you only
+ have to click once in it.
+
+ <li>To add a new entry, press the 'Add entry' button. The new (empty) entry
+ will be created on the server but will not be in its enabled state.
+ You can now change all the cells to the desired values, check the
+ 'enable' box and then press 'Save changes' to activate the new entry.
+
+ <li>To delete one or more entries, select the lines (by clicking once on
+ them), and press the 'Delete selected' button. A pop up
+ will ask you to confirm your request.
+</ul>
+
+<p>
+The columns have the following functions:
+
+<dl>
+ <dt>Enabled
+ <dd>If selected, the IPTV service will be enabled an use for channel
+ subscriptions.
+
+ <dt>Channel name
+ <dd>Select the channel this service will be mapped to.
+
+ <dt>Interface
+ <dd>The ethernet interface to receive data on.
+
+ <dt>Group
+ <dd>The multicast group to register with to receive data.
+
+ <dt>UDP Port
+ <dd>Server UDP port
+
+ </dl>
+</div>
</p>
<dl>
+ <dt>Default Language(s)
+ <dd>
+ Select the list of languages (in order of priority) to be used for supplying
+ EPG information to clients that don't provide their own configuration.
+ <p>
+ The EPG information is NOT translated, this only applies to EPG providers
+ that give information (titles, descriptions, etc..) in multiple languages.
+
<dt>DVB scan files path:
- <dd>Select the path to use for DVB scan configuration files. Typically</dt>
+ <dd>
+ Select the path to use for DVB scan configuration files. Typically
dvb-apps stores these in /usr/share/dvb/. Leave blank to use TVH's internal
- file set (probably stored at /usr/share/tvheadend/data/dvb-scan/)</dd>
- </dl>
+ file set.
+ </dl>
</div>
expression. If you don't know what a regular expression is this means
that you can type just parts of the title and filter on that too.
(No need for exact matching).
- <dt>[Only include channel...]
+ <dt>[Filter channel...]
<dd>
- Only display events from the selected channel.
- <dt>[Only include tag...]
+ Only display events from the selected channel. Channels in the drop down are
+ ordered by channel number and can be filtered (by name) by typing in the box.
+ <dt>[Filter tag...]
<dd>
Only display events from the channels which are included in the selected tag.
Tags are used for grouping channels and is configured by the administrator.
- <dt>[Only include content...]
+ <dt>[Filter content type...]
<dd>
Most DVB networks classify their events into content groups. This field
allows you to filter based on content type.
</dl>
Thus, if you only would like to browse Movies from your HD-channels you
- would select 'HD channels' in the [Only include tag...]-field, and select
+ would select 'HDTV' in the [Filter tag...]-field, and select
'Movie / Drama' in the [Only include content...]-field.
<p>
Notice that you don't have to press a 'Search' button, the grid immediately
<dt>Paging
<dd>
- In an installation with many (hundreds of) channels and full EPG feed from
- both DVB and XMLTV there will be tens of thousands of events in the database.
+ In large installations with many channels and full EPG feed there could be
+ tens of thousands of events in the database.
Therefore the EPG display employs a paging bar at the bottom of the grid.
Use it to browse backwards and forwards in the EPG. It also displays the
total amount of events matched by the current query.
about the event. It also allows the user to schedule the event for recording
by clicking on the [Record program] button.
<p>
+ For EPG providers that supply series link information there will also be a
+ [Record series] button that will record all entries in the series.
+ <p>
+ For events without any series link information, a [Autorec] button will be
+ provided to create a pseudo series link using hte Autorec feature.
+ <p>
<img src="docresources/epg2.png">
<p>
To close the popup, just close it with the [X] window button.
<dt>Autorecordings
<dd>
Should you wish to record all events matching a specific query. (Record
- your favorite TV-show, etc) you can press the 'Create Autorec' button
+ your favorite TV-show, etc) you can press the [Create Autorec] button
in the top toolbar.
<p>
A popup with details about the to-be-created autorecording rule needs to
The autorecordings can later be changed/deleted in under the
'Digital Video Recorder'-tag. Use that editor if you temporary want
to disable an autorecording or make adjustments, etc.
+
+ <dt>Watch TV
+ <dd>
+ If you want to watch live TV in the web UI, the [Watch TV] button will pop-up
+ a VLC plugin window (if you don't have the plugin installed a direct URL should be
+ provided to load into your preferred media player).
</dl>
</div>
<dl>
<dt>HTSP (Home TV Streaming Protocol), supported by Showtime Media player and <a href="http://www.xbmc.org/">XBMC</a>
<dt>The Built-in Digital Video Recorder
- <dt>RTSP server
</dl>
<dt>Modern web user interface
<dt>Digital Video Recorder
<dd>
- Built in video recorder stores recorded programs as
- <a href="http://www.matroska.org/">Matroska (.mkv)</a> files.
+ Built in video recorder stores recorded programs as either
+ <a href="http://www.matroska.org/">Matroska (.mkv)</a> or MPEG TS (.ts) files.
Multiple simultaneous recordings are supported.
All original streams (multiple audio tracks, etc) are recorded.
<dt>Electronic Program Guide
<dd>
- Imports data from DVB and <a href="http://www.xmltv.org">XMLTV</a>.
+ Imports data from DVB and Internet providers such as <a href="http://www.xmltv.org">XMLTV</a>.
Searchable from the web user interface. Results can be scheduled
for recording with a single click.
<center>
-<h1>HTS Tvheadend 2.11</h1>
-© 2006 - 2010, Andreas Öman, et al.<br><br>
+<h1>HTS Tvheadend 3.2</h1>
+© 2006 - 2012, Andreas Öman, et al.<br><br>
<img style="padding: 0px" src="docresources/tvheadendlogo.png">
</center>
"</div><br>"
"© 2006 - 2012 Andreas \303\226man, et al.<br><br>"
"<img src=\"docresources/tvheadendlogo.png\"><br>"
- "<a href=\"http://www.lonelycoder.com/hts\">"
- "http://www.lonelycoder.com/hts</a><br><br>"
+ "<a href=\"http://www.lonelycoder.com/tvheadend\">"
+ "http://www.lonelycoder.com/tvheadend</a><br><br>"
"Based on software from "
"<a target=\"_blank\" href=\"http://www.extjs.com/\">ExtJS</a>. "
"Icons from "
"FamFamFam</a>"
"<br><br>"
"Build: %s"
+ "<p>"
+ "If you'd like to support the project, please consider a donation."
+ "<br/>"
+ "All proceeds are used to support server infrastructure and buy test "
+ "equipment."
+ "<br/>"
+ "<a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=andreas%%40lonelycoder%%2ecom&item_name=Donation%%20to%%20the%%20Tvheadend%%20project&currency_code=USD'><img src='https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif' alt='' /></a>"
"</center>",
tvheadend_version,
tvheadend_version);
});
var eitColumn = new Ext.grid.CheckColumn({
- header : "EIT",
+ header : "EPG",
dataIndex : 'dvb_eit_enable',
width : 45
});
fieldLabel : 'Skip service availability check when mapping',
name : 'skip_checksubscr'
}),
+ new Ext.form.Checkbox({
+ fieldLabel : 'Use SID as channel number during mapping',
+ name : 'sidtochan'
+ }),
new Ext.form.Checkbox({
fieldLabel : 'Monitor signal quality',
name : 'qmon'
+ 'of diskspace. You have been warned');
}
}), {
- fieldLabel : 'NIT-o Network ID',
+ fieldLabel : 'Original Network ID',
name : 'nitoid',
width : 50
}, {
name : 'poweroff'
});
items.push(v);
- v = new Ext.form.Checkbox({
- fieldLabel : 'Use SID as channel number during mapping',
- name : 'sidtochan'
- }),
- items.push(v);
}
var confform = new Ext.FormPanel({
tvheadend.containers = new Ext.data.SimpleStore({
fields : [ 'identifier', 'name' ],
id : 0,
- data : [ [ 'matroska', 'Matroska' ], [ 'pass', 'Pass-through' ] ]
+ data : [ [ 'matroska', 'Matroska' ], [ 'pass', 'TS (Pass-through)' ] ]
});
/**
}), new Ext.form.Checkbox({
fieldLabel : 'Include channel name in filename',
name : 'channelInTitle'
- }), new Ext.form.Checkbox({
- fieldLabel : 'Remove all unsafe characters from filename',
- name : 'cleanTitle'
}), new Ext.form.Checkbox({
fieldLabel : 'Include date in filename',
name : 'dateInTitle'
}), new Ext.form.Checkbox({
fieldLabel : 'Include episode in filename',
name : 'episodeInTitle'
+ }), new Ext.form.Checkbox({
+ fieldLabel : 'Remove all unsafe characters from filename',
+ name : 'cleanTitle'
}), new Ext.form.Checkbox({
fieldLabel : 'Replace whitespace in title with \'-\'',
name : 'whitespaceInTitle'
});
/*
- * Simple fieldet
+ * Simple fields
*/
var simplePanel = new Ext.form.FieldSet({
- title : 'Basic Config',
- width : 800,
+ title : 'General Config',
+ width : 700,
autoHeight : true,
collapsible : true,
- items : [ interval, internalModule, intervalValue, intervalUnit,
- channelRename, channelRenumber, channelReicon ]
+ items : [ channelRename, channelRenumber, channelReicon ]
+ });
+
+ /*
+ * Internal grabber
+ */
+ var internalPanel = new Ext.form.FieldSet({
+ title : 'Internal Grabber',
+ width : 700,
+ autoHeight : true,
+ collapsible : true,
+ items : [ interval, internalModule, intervalValue, intervalUnit ]
});
/* ****************************************************************
var externalPanel = new Ext.form.FieldSet({
title : 'External Interfaces',
- width : 800,
+ width : 700,
autoHeight : true,
collapsible : true,
collapsed : true,
});
var otaPanel = new Ext.form.FieldSet({
- title : 'OTA Interfaces',
- width : 800,
+ title : 'Over-the-air Grabbers',
+ width : 700,
autoHeight : true,
collapsible : true,
collapsed : true,
layout : 'form',
defaultType : 'textfield',
autoHeight : true,
- items : [ simplePanel, externalPanel, otaPanel ],
+ items : [ simplePanel, internalPanel, otaPanel, externalPanel ],
tbar : [ saveButton, '->', helpButton ]
});
/* Hack to get display working */
delay = new Ext.util.DelayedTask(function() {
simplePanel.doLayout(false);
+ internalPanel.doLayout(false);
externalPanel.doLayout(false);
otaPanel.doLayout(false);
});
iconCls : 'add',
text : 'Add service',
handler : addRecord
- }, '-', delButton, '-', saveBtn, rejectBtn ]
+ }, '-', delButton, '-', saveBtn, rejectBtn, '->',
+ {
+ text : 'Help',
+ handler : function() {
+ new tvheadend.help('IPTV', 'config_iptv.html');
+ }
+ } ]
});
store.on('update', function(s, r, o) {