mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-31 01:11:12 +02:00
Merge remote-tracking branch 'uncool/cst-next'
This need buildfixes and some functional updates...
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
AUTHORS
|
||||
of Neutrino Webserver
|
||||
in order of appearance (bottom up)
|
||||
|
||||
|
||||
Johannes Golombek [yjogol@cvs.tuxbox.org]
|
||||
Bengt Martensson [barf@cvs.tuxbox.org]
|
||||
Jacek Jendrzej [metallica@cvs.tuxbox.org]
|
||||
Henning Behrend [sat_man@cvs.tuxbox.org]
|
||||
Axel Buehning [diemade@cvs.tuxbox.org]
|
||||
Michael Schuele [chakazulu@cvs.tuxbox.org]
|
||||
Peter Reich [digi_casi@cvs.tuxbox.org]
|
||||
H.Heinold [heinold@physik.tu-cottbus.de]
|
||||
Sven Traenkle [zwen@cvs.tuxbox.org]
|
||||
gagga <gagga@berlios.de>
|
||||
wjoost <wjoost@berlios.de>
|
||||
Ralf Gandy <thegoodguy@berlios.de>
|
||||
Michael Lantzen <leahcim@berlios.de>
|
||||
Andreas Oberritter <obi@berlios.de>
|
||||
Dirk Szymanski [dirch@cvs.tuxbox.org]
|
||||
Steffen Hehn <mcclean@berlios.de>
|
@@ -1,340 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
@@ -13,7 +13,6 @@ AM_CPPFLAGS += \
|
||||
-I$(top_srcdir)/src/nhttpd/yhttpd_core \
|
||||
-I$(top_srcdir)/src/nhttpd/yhttpd_mods \
|
||||
-I$(top_srcdir)/src/nhttpd/tuxboxapi \
|
||||
-I$(top_srcdir)/src/nhttpd/tuxboxapi/coolstream \
|
||||
-I$(top_srcdir)/lib/libeventserver \
|
||||
-I$(top_srcdir)/lib/libconfigfile \
|
||||
-I$(top_srcdir)/lib/connection \
|
||||
|
@@ -1,55 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
nhttpd Version 3.x = (yhttpd 3.x + tuxboxapi)
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
25.02.2010 (yjogol)
|
||||
-------------------
|
||||
C/C++ Coding-Style switched to GNU-Style
|
||||
All Files edited with Tab width = 4
|
||||
|
||||
13.09.2006 (yjogol)
|
||||
-------------------
|
||||
Starting with Version 3.0 the nhttpd source code was splitted into
|
||||
a core Webserver (yhttpd_core), extension modules (yhttpd_mods) and the
|
||||
tuxbox specific code (tuxboxapi).
|
||||
|
||||
The yhttpd_core and yhttp_mods are completly rewritten.
|
||||
All Neutrino specific code was reorganized into yParser- and ControlAPI-code.
|
||||
|
||||
The Hook-System (extension modules) encapsulate all requests and responses
|
||||
for the tuxboxapi. So both tuxboxapi and yhttpd can be developed seperatlly and
|
||||
independ from each other.
|
||||
|
||||
Look at yhttpd_core/README
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
nhttpd.conf Description
|
||||
------------------------------------------------------------------------------
|
||||
Language.directory=languages
|
||||
Language.selected=Deutsch
|
||||
Tuxbox.LogosURL=
|
||||
WebsiteMain.directory=/share/tuxbox/neutrino/httpd // Main HTML,Javascript, Images Directoty root (e.g. read-only area in mFlash)
|
||||
WebsiteMain.override_directory=/var/httpd // Override directory (writable) for extensions or Updates. Webserver first search here.
|
||||
WebsiteMain.port=80 // Port the webserver is running on
|
||||
WebsiteMain.hosted_directory=/mnt/hosted // our own directory hosted by the webserver. Adressable with <box ip>/hosted/<your files>
|
||||
configfile.version=4 // Version of this config file
|
||||
mod_auth.authenticate=false // ask for username/password (http digit authentication)
|
||||
mod_auth.no_auth_client= // IP Adress without http authentication
|
||||
mod_auth.password=coolstream
|
||||
mod_auth.username=root
|
||||
mod_cache.cache_directory=/tmp/.cache
|
||||
mod_sendfile.mime_types=htm:text/html,html:text/html,xml:text/xml,txt:text/plain,jpg:image/jpeg,jpeg:image/jpeg,gif:image/gif,png:image/png,bmp:image/bmp,css:text/css,js:text/plain,img:application/octet-stream,ico:image/x-icon,m3u:application/octet-stream,tar:application/octet-stream
|
||||
mod_weblog.log_format=
|
||||
mod_weblog.logfile=/tmp/yhhtpd.log
|
||||
server.chroot=
|
||||
server.group_name=
|
||||
server.log.loglevel=0
|
||||
server.no_keep-alive_ips=
|
||||
server.user_name=
|
||||
webserver.threading=false
|
||||
webserver.websites=WebsiteMain // Dont change
|
||||
#if SSL compiled
|
||||
WebsiteMain.ssl=false
|
||||
WebsiteMain.ssl_pemfile
|
||||
WebsiteMain.ssl_ca_file
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,20 +0,0 @@
|
||||
AUTHORS
|
||||
in order of appearance (bottom up)
|
||||
|
||||
|
||||
Johannes Golombek [yjogol@cvs.tuxbox.org]
|
||||
Bengt Martensson [barf@cvs.tuxbox.org]
|
||||
Jacek Jendrzej [metallica@cvs.tuxbox.org]
|
||||
Henning Behrend [sat_man@cvs.tuxbox.org]
|
||||
Axel Buehning [diemade@cvs.tuxbox.org]
|
||||
Michael Schuele [chakazulu@cvs.tuxbox.org]
|
||||
Peter Reich [digi_casi@cvs.tuxbox.org]
|
||||
H.Heinold [heinold@physik.tu-cottbus.de]
|
||||
Sven Traenkle [zwen@cvs.tuxbox.org]
|
||||
gagga <gagga@berlios.de>
|
||||
wjoost <wjoost@berlios.de>
|
||||
Ralf Gandy <thegoodguy@berlios.de>
|
||||
Michael Lantzen <leahcim@berlios.de>
|
||||
Andreas Oberritter <obi@berlios.de>
|
||||
Dirk Szymanski [dirch@cvs.tuxbox.org]
|
||||
Steffen Hehn <mcclean@berlios.de>
|
@@ -1,2 +1,34 @@
|
||||
SUBDIRS = coolstream
|
||||
AM_CPPFLAGS = -fno-rtti -fno-exceptions -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64
|
||||
|
||||
AM_CPPFLAGS += \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/lib \
|
||||
-I$(top_srcdir)/src/zapit/include \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/src/nhttpd \
|
||||
-I$(top_srcdir)/src/nhttpd/yhttpd_core \
|
||||
-I$(top_srcdir)/src/nhttpd/yhttpd_mods \
|
||||
-I$(top_srcdir)/lib/connection \
|
||||
-I$(top_srcdir)/lib/libeventserver \
|
||||
-I$(top_srcdir)/lib/libconfigfile \
|
||||
-I$(top_srcdir)/lib/xmltree \
|
||||
@SIGC_CFLAGS@ \
|
||||
@FREETYPE_CFLAGS@
|
||||
|
||||
if BOXTYPE_COOL
|
||||
if BOXMODEL_APOLLO
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/lib/libcoolstream2
|
||||
else
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/lib/libcoolstream
|
||||
endif
|
||||
endif
|
||||
if BOXTYPE_TRIPLE
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/lib/libtriple
|
||||
endif
|
||||
|
||||
noinst_LIBRARIES = libnhttpd_tuxboxapi.a
|
||||
|
||||
libnhttpd_tuxboxapi_a_SOURCES = \
|
||||
neutrinoapi.cpp neutrinoyparser.cpp controlapi.cpp
|
||||
|
||||
|
@@ -39,6 +39,8 @@
|
||||
#include <driver/screenshot.h>
|
||||
#include <gui/rc_lock.h>
|
||||
#include <rcsim.h>
|
||||
#include <driver/pictureviewer/pictureviewer.h>
|
||||
extern CPictureViewer *g_PicViewer;
|
||||
|
||||
// yhttpd
|
||||
#include <yhttpd.h>
|
||||
@@ -79,9 +81,11 @@ void CControlAPI::init(CyhookHandler *hh)
|
||||
PLUGIN_DIRS[1].append("/scripts");
|
||||
PLUGIN_DIRS[2]=PLUGIN_DIRS[3]=hh->WebserverConfigList["WebsiteMain.directory"];
|
||||
PLUGIN_DIRS[3].append("/scripts");
|
||||
PLUGIN_DIRS[4]="/var/tuxbox/plugins";
|
||||
PLUGIN_DIRS[5]=PLUGINDIR;
|
||||
PLUGIN_DIRS[6]="/mnt/plugins";
|
||||
PLUGIN_DIRS[4]=GAMESDIR;
|
||||
PLUGIN_DIRS[5]=g_settings.plugin_hdd_dir;
|
||||
PLUGIN_DIRS[6]=PLUGINDIR_MNT;
|
||||
PLUGIN_DIRS[7]=PLUGINDIR_VAR;
|
||||
PLUGIN_DIRS[8]=PLUGINDIR;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,7 +158,9 @@ const CControlAPI::TyCgiCall CControlAPI::yCgiCallList[]=
|
||||
// channel & bouquet & epg & zapping handling
|
||||
{"getservicesxml", &CControlAPI::GetServicesxmlCGI,""},
|
||||
{"getbouquetsxml", &CControlAPI::GetBouquetsxmlCGI,""},
|
||||
{"getubouquetsxml", &CControlAPI::GetUBouquetsxmlCGI,""},
|
||||
{"channellist", &CControlAPI::ChannellistCGI, "text/plain"},
|
||||
{"logolist", &CControlAPI::LogolistCGI, "text/plain"},
|
||||
{"getbouquet", &CControlAPI::GetBouquetCGI, "+xml"},
|
||||
{"getbouquets", &CControlAPI::GetBouquetsCGI, "+xml"},
|
||||
{"getmode", &CControlAPI::GetModeCGI, "text/plain"},
|
||||
@@ -176,6 +182,7 @@ const CControlAPI::TyCgiCall CControlAPI::yCgiCallList[]=
|
||||
{"version", &CControlAPI::VersionCGI, ""},
|
||||
{"reloadsetup", &CControlAPI::ReloadNeutrinoSetupCGI, ""},
|
||||
{"reloadplugins", &CControlAPI::ReloadPluginsCGI, ""},
|
||||
{"reloadchannels", &CControlAPI::ReloadChannelsCGI, ""},
|
||||
#ifdef SCREENSHOT
|
||||
{"screenshot", &CControlAPI::ScreenshotCGI, ""},
|
||||
#endif
|
||||
@@ -334,17 +341,27 @@ void CControlAPI::SetModeCGI(CyhookHandler *hh)
|
||||
|
||||
if (hh->ParamList["1"] == "radio") // switch to radio mode
|
||||
{
|
||||
int mode = NeutrinoMessages::mode_radio;
|
||||
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::CHANGEMODE, CEventServer::INITID_HTTPD, (void *)&mode,sizeof(int));
|
||||
sleep(1);
|
||||
NeutrinoAPI->UpdateBouquets();
|
||||
if(CNeutrinoApp::getInstance()->getMode() != NeutrinoMessages::mode_standby){
|
||||
int mode = NeutrinoMessages::mode_radio;
|
||||
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::CHANGEMODE, CEventServer::INITID_HTTPD, (void *)&mode,sizeof(int));
|
||||
sleep(1);
|
||||
NeutrinoAPI->UpdateBouquets();
|
||||
}else{
|
||||
extern CRemoteControl * g_RemoteControl;
|
||||
g_RemoteControl->radioMode();
|
||||
}
|
||||
}
|
||||
else if (hh->ParamList["1"] == "tv") // switch to tv mode
|
||||
{
|
||||
int mode = NeutrinoMessages::mode_tv;
|
||||
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::CHANGEMODE, CEventServer::INITID_HTTPD, (void *)&mode,sizeof(int));
|
||||
sleep(1);
|
||||
NeutrinoAPI->UpdateBouquets();
|
||||
if(CNeutrinoApp::getInstance()->getMode() != NeutrinoMessages::mode_standby){
|
||||
int mode = NeutrinoMessages::mode_tv;
|
||||
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::CHANGEMODE, CEventServer::INITID_HTTPD, (void *)&mode,sizeof(int));
|
||||
sleep(1);
|
||||
NeutrinoAPI->UpdateBouquets();
|
||||
}else{
|
||||
extern CRemoteControl * g_RemoteControl;
|
||||
g_RemoteControl->tvMode();
|
||||
}
|
||||
}
|
||||
else if (hh->ParamList["record"] == "start") // start record mode
|
||||
{
|
||||
@@ -554,6 +571,13 @@ void CControlAPI::GetBouquetsxmlCGI(CyhookHandler *hh)
|
||||
{
|
||||
hh->SendFile(CONFIGDIR "/zapit/bouquets.xml");
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// send ubouquets.xml
|
||||
void CControlAPI::GetUBouquetsxmlCGI(CyhookHandler *hh)
|
||||
{
|
||||
hh->SendFile(CONFIGDIR "/zapit/ubouquets.xml");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// get actual channel_id
|
||||
@@ -822,6 +846,41 @@ void CControlAPI::ChannellistCGI(CyhookHandler *hh)
|
||||
SendChannelList(hh);
|
||||
}
|
||||
|
||||
void CControlAPI::LogolistCGI(CyhookHandler *hh)
|
||||
{
|
||||
std::string result = "";
|
||||
int mode = NeutrinoAPI->Zapit->getMode();
|
||||
CBouquetManager::ChannelIterator cit = mode == CZapitClient::MODE_RADIO ? g_bouquetManager->radioChannelsBegin() : g_bouquetManager->tvChannelsBegin();
|
||||
for (; !(cit.EndOfChannels()); cit++)
|
||||
{
|
||||
std::vector<t_channel_id> v;
|
||||
CZapitChannel * channel = *cit;
|
||||
size_t pos = std::find(v.begin(), v.end(), channel->getChannelID()) - v.begin();
|
||||
if (pos < v.size())
|
||||
continue;
|
||||
v.push_back(channel->getChannelID());
|
||||
result += string_printf(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS";%s;"PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS"", channel->getChannelID(), channel->getName().c_str(), (channel->getChannelID() & 0xFFFFFFFFFFFFULL));
|
||||
|
||||
if (hh->ParamList["1"].compare("files") == 0)
|
||||
{
|
||||
std::string logoFile = "";
|
||||
std::string logoLink = "";
|
||||
char link[PATH_MAX + 1] = {0};
|
||||
if (g_PicViewer->GetLogoName(channel->getChannelID(), NeutrinoAPI->GetServiceName(channel->getChannelID()), logoFile, NULL, NULL))
|
||||
{
|
||||
result += string_printf(";%s", logoFile.c_str());
|
||||
realpath(logoFile.c_str(), link);
|
||||
logoLink = string(link);
|
||||
if (strcmp(logoFile.c_str(), logoLink.c_str()) != 0)
|
||||
result += string_printf(";%s", logoLink.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
result += "\n";
|
||||
}
|
||||
hh->SetHeader(HTTP_OK, "text/plain; charset=UTF-8");
|
||||
hh->WriteLn(result);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
// get actual and next event data for given channel
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -1327,23 +1386,31 @@ inline static bool sortByDateTime (const CChannelEvent& a, const CChannelEvent&
|
||||
return a.startTime < b.startTime;
|
||||
}
|
||||
extern const char * GetGenre(const unsigned char contentClassification); // UTF-8
|
||||
|
||||
void CControlAPI::EpgSearchXMLCGI(CyhookHandler *hh)
|
||||
{
|
||||
EpgSearchCGI(hh, true);//xml_forat = true
|
||||
}
|
||||
void CControlAPI::EpgSearchTXTCGI(CyhookHandler *hh)
|
||||
{
|
||||
EpgSearchCGI(hh, false);//xml_forat = false
|
||||
EpgSearchCGI(hh, true); //xml_format = true
|
||||
}
|
||||
|
||||
void CControlAPI::EpgSearchCGI(CyhookHandler *hh, bool xml_forat )
|
||||
void CControlAPI::EpgSearchTXTCGI(CyhookHandler *hh)
|
||||
{
|
||||
EpgSearchCGI(hh, false); //xml_format = false
|
||||
}
|
||||
|
||||
void CControlAPI::EpgSearchCGI(CyhookHandler *hh, bool xml_format )
|
||||
{
|
||||
t_channel_id channel_id;
|
||||
CChannelEventList evtlist;
|
||||
bool param_empty = hh->ParamList.empty();
|
||||
const int m_search_epg_item = 5;
|
||||
if(!param_empty){
|
||||
if(xml_forat){
|
||||
CChannelEventList evtlist;
|
||||
|
||||
if (!hh->ParamList.empty()) {
|
||||
bool search_epginfo = true;
|
||||
if (hh->ParamList["epginfo"] == "false")
|
||||
search_epginfo = false;
|
||||
|
||||
const int m_search_epg_item = search_epginfo ? 5 /*SEARCH_EPG_ALL*/ : 1 /*SEARCH_EPG_TITLE*/;
|
||||
std::string m_search_keyword = hh->ParamList["1"];
|
||||
|
||||
if(xml_format){
|
||||
hh->SetHeader(HTTP_OK, "text/xml; charset=UTF-8");
|
||||
hh->WriteLn("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
||||
hh->WriteLn("<neutrino commandversion=\"1\">");
|
||||
@@ -1351,8 +1418,6 @@ void CControlAPI::EpgSearchCGI(CyhookHandler *hh, bool xml_forat )
|
||||
else{
|
||||
hh->SetHeader(HTTP_OK, "text/plain; charset=UTF-8"); // default
|
||||
}
|
||||
|
||||
std::string m_search_keyword =hh->ParamList["1"];
|
||||
|
||||
std::vector<t_channel_id> v;
|
||||
int channel_nr = CNeutrinoApp::getInstance ()->channelList->getSize();//unique channelList TV or Radio
|
||||
@@ -1396,12 +1461,14 @@ void CControlAPI::EpgSearchCGI(CyhookHandler *hh, bool xml_forat )
|
||||
if( (eventIterator->startTime+eventIterator->duration) < u_azeit)
|
||||
continue;
|
||||
struct tm *tmStartZeit = localtime(&eventIterator->startTime);
|
||||
if(xml_forat){
|
||||
if(xml_format){
|
||||
hh->printf("\t<epgsearch>");
|
||||
hh->printf("\t\t<channelname>%s</channelname>\n",ZapitTools::UTF8_to_UTF8XML(NeutrinoAPI->GetServiceName(eventIterator->channelID).c_str()).c_str());;
|
||||
hh->printf("\t\t<epgtitle>%s</epgtitle>\n",ZapitTools::UTF8_to_UTF8XML(epg.title.c_str()).c_str());
|
||||
hh->printf("\t\t<info1>%s</info1>\n",ZapitTools::UTF8_to_UTF8XML(epg.info1.c_str()).c_str());
|
||||
hh->printf("\t\t<info2>%s</info2>\n",ZapitTools::UTF8_to_UTF8XML(epg.info2.c_str()).c_str());
|
||||
if (search_epginfo) {
|
||||
hh->printf("\t\t<info1>%s</info1>\n",ZapitTools::UTF8_to_UTF8XML(epg.info1.c_str()).c_str());
|
||||
hh->printf("\t\t<info2>%s</info2>\n",ZapitTools::UTF8_to_UTF8XML(epg.info2.c_str()).c_str());
|
||||
}
|
||||
if (CEitManager::getInstance()->getEPGid(eventIterator->eventID, eventIterator->startTime, &longepg)) {
|
||||
hh->printf("\t\t<fsk>%u</fsk>\n", longepg.fsk);
|
||||
#ifdef FULL_CONTENT_CLASSIFICATION
|
||||
@@ -1440,10 +1507,12 @@ void CControlAPI::EpgSearchCGI(CyhookHandler *hh, bool xml_forat )
|
||||
hh->WriteLn(datetimer_str);
|
||||
hh->WriteLn(NeutrinoAPI->GetServiceName(eventIterator->channelID));
|
||||
hh->WriteLn(epg.title);
|
||||
if(!epg.info1.empty())
|
||||
hh->WriteLn(epg.info1);
|
||||
if(!epg.info2.empty())
|
||||
hh->WriteLn(epg.info2);
|
||||
if (search_epginfo) {
|
||||
if(!epg.info1.empty())
|
||||
hh->WriteLn(epg.info1);
|
||||
if(!epg.info2.empty())
|
||||
hh->WriteLn(epg.info2);
|
||||
}
|
||||
if (CEitManager::getInstance()->getEPGid(eventIterator->eventID, eventIterator->startTime, &longepg)) {
|
||||
hh->printf("fsk:%u\n", longepg.fsk);
|
||||
#ifdef FULL_CONTENT_CLASSIFICATION
|
||||
@@ -1465,7 +1534,7 @@ void CControlAPI::EpgSearchCGI(CyhookHandler *hh, bool xml_forat )
|
||||
}
|
||||
}
|
||||
}
|
||||
if(xml_forat)
|
||||
if(xml_format)
|
||||
hh->printf("</neutrino>");
|
||||
}else
|
||||
hh->SendError();
|
||||
@@ -1591,6 +1660,14 @@ void CControlAPI::ReloadPluginsCGI(CyhookHandler *hh)
|
||||
hh->SendOk();
|
||||
}
|
||||
|
||||
void CControlAPI::ReloadChannelsCGI(CyhookHandler *hh)
|
||||
{
|
||||
CServiceManager::getInstance()->SaveServices(true, true);
|
||||
NeutrinoAPI->Zapit->reinitChannels();
|
||||
CNeutrinoApp::getInstance()->SDTreloadChannels = false;
|
||||
hh->SendOk();
|
||||
}
|
||||
|
||||
#ifdef SCREENSHOT
|
||||
void CControlAPI::ScreenshotCGI(CyhookHandler *hh)
|
||||
{
|
||||
@@ -1962,7 +2039,7 @@ void CControlAPI::SendTimers(CyhookHandler *hh)
|
||||
"Unknown TV-Channel" : "Unknown Radio-Channel");
|
||||
}
|
||||
else
|
||||
sprintf(zAddData, PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, timer->channel_id);
|
||||
snprintf(zAddData,sizeof(zAddData), PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, timer->channel_id);
|
||||
|
||||
zAddData[22]=0;
|
||||
|
||||
@@ -1970,7 +2047,7 @@ void CControlAPI::SendTimers(CyhookHandler *hh)
|
||||
|
||||
case CTimerd::TIMER_STANDBY:
|
||||
if (!send_id)
|
||||
sprintf(zAddData,"Standby: %s",(timer->standby_on ? "ON" : "OFF"));
|
||||
snprintf(zAddData,sizeof(zAddData),"Standby: %s",(timer->standby_on ? "ON" : "OFF"));
|
||||
break;
|
||||
|
||||
case CTimerd::TIMER_REMIND :
|
@@ -42,7 +42,7 @@ private:
|
||||
void epgDetailList(CyhookHandler *hh);
|
||||
void EpgSearchXMLCGI(CyhookHandler *hh);
|
||||
void EpgSearchTXTCGI(CyhookHandler *hh);
|
||||
void EpgSearchCGI(CyhookHandler *hh, bool xml_forat = false);
|
||||
void EpgSearchCGI(CyhookHandler *hh, bool xml_format = false);
|
||||
// subs
|
||||
friend class CNeutrinoWebserver; // for timer /fb/ compatibility
|
||||
void doModifyTimer(CyhookHandler *hh);
|
||||
@@ -70,6 +70,7 @@ private:
|
||||
void GetTimeCGI(CyhookHandler *hh);
|
||||
void GetServicesxmlCGI(CyhookHandler *hh);
|
||||
void GetBouquetsxmlCGI(CyhookHandler *hh);
|
||||
void GetUBouquetsxmlCGI(CyhookHandler *hh);
|
||||
void GetChannel_IDCGI(CyhookHandler *hh);
|
||||
void GetTPChannel_IDCGI(CyhookHandler *hh);
|
||||
void MessageCGI(CyhookHandler *hh);
|
||||
@@ -78,12 +79,14 @@ private:
|
||||
void ShutdownCGI(CyhookHandler *hh);
|
||||
void VolumeCGI(CyhookHandler *hh);
|
||||
void ChannellistCGI(CyhookHandler *hh);
|
||||
void LogolistCGI(CyhookHandler *hh);
|
||||
void GetBouquetCGI(CyhookHandler *hh);
|
||||
void GetBouquetsCGI(CyhookHandler *hh);
|
||||
void EpgCGI(CyhookHandler *hh);
|
||||
void VersionCGI(CyhookHandler *hh);
|
||||
void ReloadNeutrinoSetupCGI(CyhookHandler *hh);
|
||||
void ReloadPluginsCGI(CyhookHandler *hh);
|
||||
void ReloadChannelsCGI(CyhookHandler *hh);
|
||||
void ScreenshotCGI(CyhookHandler *hh);
|
||||
void ZaptoCGI(CyhookHandler *hh);
|
||||
void StartPluginCGI(CyhookHandler *hh);
|
||||
@@ -114,7 +117,7 @@ private:
|
||||
|
||||
|
||||
protected:
|
||||
static const unsigned int PLUGIN_DIR_COUNT = 7;
|
||||
static const unsigned int PLUGIN_DIR_COUNT = 9;
|
||||
static std::string PLUGIN_DIRS[PLUGIN_DIR_COUNT];
|
||||
CNeutrinoAPI *NeutrinoAPI;
|
||||
|
@@ -1,24 +0,0 @@
|
||||
AM_CPPFLAGS = -fno-rtti -fno-exceptions -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64
|
||||
|
||||
AM_CPPFLAGS += \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/lib \
|
||||
-I$(top_srcdir)/src/zapit/include \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/src/nhttpd \
|
||||
-I$(top_srcdir)/src/nhttpd/yhttpd_core \
|
||||
-I$(top_srcdir)/src/nhttpd/yhttpd_mods \
|
||||
-I$(top_srcdir)/lib/connection \
|
||||
-I$(top_srcdir)/lib/libeventserver \
|
||||
-I$(top_srcdir)/lib/libconfigfile \
|
||||
-I$(top_srcdir)/lib/xmltree \
|
||||
@SIGC_CFLAGS@ \
|
||||
@FREETYPE_CFLAGS@ \
|
||||
@HWLIB_CFLAGS@
|
||||
|
||||
noinst_LIBRARIES = libnhttpd_tuxboxapi.a
|
||||
|
||||
libnhttpd_tuxboxapi_a_SOURCES = \
|
||||
neutrinoapi.cpp neutrinoyparser.cpp controlapi.cpp
|
||||
|
@@ -1,20 +0,0 @@
|
||||
AM_CPPFLAGS = -fno-rtti -fno-exceptions -D_FILE_OFFSET_BITS=64
|
||||
|
||||
AM_CPPFLAGS += \
|
||||
-I$(top_srcdir)/lib \
|
||||
-I$(top_srcdir)/src/zapit/include \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/src/nhttpd \
|
||||
-I$(top_srcdir)/src/nhttpd/yhttpd_core \
|
||||
-I$(top_srcdir)/src/nhttpd/yhttpd_mods \
|
||||
-I$(top_srcdir)/lib/connection \
|
||||
-I$(top_srcdir)/lib/libeventserver \
|
||||
-I$(top_srcdir)/lib/libconfigfile \
|
||||
-I$(top_srcdir)/lib/xmltree \
|
||||
@FREETYPE_CFLAGS@
|
||||
|
||||
noinst_LIBRARIES = libnhttpd_tuxboxapi.a
|
||||
|
||||
libnhttpd_tuxboxapi_a_SOURCES = \
|
||||
neutrinoapi.cpp neutrinoyparser.cpp lcdapi.cpp controlapi.cpp
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,117 +0,0 @@
|
||||
//=============================================================================
|
||||
// NHTTPD
|
||||
// Neutrino ControlAPI
|
||||
//=============================================================================
|
||||
#ifndef __nhttpd_neutrinocontrolapi_hpp__
|
||||
#define __nhttpd_neutrinocontrolapi_hpp__
|
||||
// C++
|
||||
#include <string>
|
||||
// yhttpd
|
||||
#include "yhook.h"
|
||||
|
||||
// forward declaration
|
||||
class CNeutrinoAPI;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class CControlAPI : public Cyhook
|
||||
{
|
||||
private:
|
||||
// Dispatcher Array
|
||||
typedef void (CControlAPI::*TyFunc)(CyhookHandler *hh);
|
||||
typedef struct
|
||||
{
|
||||
const char *func_name;
|
||||
TyFunc pfunc;
|
||||
const char *mime_type;
|
||||
} TyCgiCall;
|
||||
const static TyCgiCall yCgiCallList[];
|
||||
|
||||
int rc_send(int ev, unsigned int code, unsigned int value);
|
||||
|
||||
// send functions for ExecuteCGI (controld api)
|
||||
void SendEventList(CyhookHandler *hh,t_channel_id channel_id);
|
||||
void SendcurrentVAPid(CyhookHandler *hh);
|
||||
void SendAllCurrentVAPid(CyhookHandler *hh);
|
||||
void SendSettings(CyhookHandler *hh);
|
||||
void SendStreamInfo(CyhookHandler *hh);
|
||||
void SendBouquets(CyhookHandler *hh);
|
||||
void SendBouquet(CyhookHandler *hh,int BouquetNr);
|
||||
void SendChannelList(CyhookHandler *hh);
|
||||
void SendTimers(CyhookHandler *hh);
|
||||
|
||||
// subs
|
||||
friend class CNeutrinoWebserver; // for timer /fb/ compatibility
|
||||
void doModifyTimer(CyhookHandler *hh);
|
||||
void doNewTimer(CyhookHandler *hh);
|
||||
|
||||
//yweb
|
||||
void YWeb_SendVideoStreamingPids(CyhookHandler *hh, int apid_no);
|
||||
void YWeb_SendRadioStreamingPid(CyhookHandler *hh);
|
||||
void compatibility_Timer(CyhookHandler *hh);
|
||||
std::string YexecuteScript(CyhookHandler *hh, std::string cmd);
|
||||
|
||||
// CGI functions for ExecuteCGI
|
||||
void TimerCGI(CyhookHandler *hh);
|
||||
void SetModeCGI(CyhookHandler *hh);
|
||||
void GetModeCGI(CyhookHandler *hh);
|
||||
void ExecCGI(CyhookHandler *hh);
|
||||
void SystemCGI(CyhookHandler *hh);
|
||||
void StandbyCGI(CyhookHandler *hh);
|
||||
void EsoundCGI(CyhookHandler *hh);
|
||||
void RCCGI(CyhookHandler *hh);
|
||||
void GetDateCGI(CyhookHandler *hh);
|
||||
void GetTimeCGI(CyhookHandler *hh);
|
||||
void SettingsCGI(CyhookHandler *hh);
|
||||
void GetServicesxmlCGI(CyhookHandler *hh);
|
||||
void GetBouquetsxmlCGI(CyhookHandler *hh);
|
||||
void GetChannel_IDCGI(CyhookHandler *hh);
|
||||
void MessageCGI(CyhookHandler *hh);
|
||||
void InfoCGI(CyhookHandler *hh);
|
||||
void ShutdownCGI(CyhookHandler *hh);
|
||||
void VolumeCGI(CyhookHandler *hh);
|
||||
void ChannellistCGI(CyhookHandler *hh);
|
||||
void GetBouquetCGI(CyhookHandler *hh);
|
||||
void GetBouquetsCGI(CyhookHandler *hh);
|
||||
void EpgCGI(CyhookHandler *hh);
|
||||
void VersionCGI(CyhookHandler *hh);
|
||||
void ZaptoCGI(CyhookHandler *hh);
|
||||
void StartPluginCGI(CyhookHandler *hh);
|
||||
void LCDAction(CyhookHandler *hh);
|
||||
void YWebCGI(CyhookHandler *hh);
|
||||
void RebootCGI(CyhookHandler *hh);
|
||||
void RCEmCGI(CyhookHandler *hh);
|
||||
void AspectRatioCGI(CyhookHandler *hh);
|
||||
void VideoFormatCGI(CyhookHandler *hh);
|
||||
void VideoOutputCGI(CyhookHandler *hh);
|
||||
void VCROutputCGI(CyhookHandler *hh);
|
||||
void ScartModeCGI(CyhookHandler *hh);
|
||||
void setBouquetCGI(CyhookHandler *hh);
|
||||
void saveBouquetCGI(CyhookHandler *hh);
|
||||
void moveBouquetCGI(CyhookHandler *hh);
|
||||
void deleteBouquetCGI(CyhookHandler *hh);
|
||||
void addBouquetCGI(CyhookHandler *hh);
|
||||
void renameBouquetCGI(CyhookHandler *hh);
|
||||
void changeBouquetCGI(CyhookHandler *hh);
|
||||
void updateBouquetCGI(CyhookHandler *hh);
|
||||
void build_live_url(CyhookHandler *hh);
|
||||
|
||||
protected:
|
||||
static const unsigned int PLUGIN_DIR_COUNT = 5;
|
||||
static std::string PLUGIN_DIRS[PLUGIN_DIR_COUNT];
|
||||
CNeutrinoAPI *NeutrinoAPI;
|
||||
|
||||
void init(CyhookHandler *hh);
|
||||
void Execute(CyhookHandler *hh);
|
||||
|
||||
public:
|
||||
// constructor & deconstructor
|
||||
CControlAPI(CNeutrinoAPI *_NeutrinoAPI);
|
||||
|
||||
// virtual functions for HookHandler/Hook
|
||||
virtual std::string getHookName(void) {return std::string("mod_ControlAPI");}
|
||||
virtual std::string getHookVersion(void) {return std::string("$Revision$");}
|
||||
virtual THandleStatus Hook_SendResponse(CyhookHandler *hh);
|
||||
virtual THandleStatus Hook_PrepareResponse(CyhookHandler *hh);
|
||||
};
|
||||
|
||||
#endif /* __nhttpd_neutrinocontrolapi_hpp__ */
|
@@ -1,220 +0,0 @@
|
||||
/*
|
||||
nhttpd - DBoxII-Project
|
||||
|
||||
Copyright (C) 2001/2002 Dirk Szymanski 'Dirch'
|
||||
Copyright (C) 2005 SnowHead
|
||||
|
||||
$Id: lcdapi.cpp,v 1.1.2.1 2010/02/21 10:10:12 cvs Exp $
|
||||
|
||||
License: GPL
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
// c++
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
#include <config.h>
|
||||
// tuxbox
|
||||
#if HAVE_LCD
|
||||
#include <driver/lcdd.h>
|
||||
#endif
|
||||
#include <global.h>
|
||||
#include <neutrino.h>
|
||||
#include <system/settings.h>
|
||||
|
||||
#if HAVE_LCD
|
||||
#include <lcddisplay/lcddisplay.h>
|
||||
#endif
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
// nhttpd
|
||||
//#include "ylogging.h"
|
||||
#include "lcdapi.h"
|
||||
|
||||
#if HAVE_LCD
|
||||
static char font_name[3][10]={"Micron","Micron","Pakenham"};
|
||||
#endif
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
void CLCDAPI::Clear(void)
|
||||
{
|
||||
#if HAVE_LCD
|
||||
display.draw_fill_rect(-1, -1, 120, 64, CLCDDisplay::PIXEL_OFF); // clear lcd
|
||||
#endif
|
||||
}
|
||||
|
||||
void CLCDAPI::Update(void)
|
||||
{
|
||||
#if HAVE_LCD
|
||||
display.update();
|
||||
#endif
|
||||
}
|
||||
|
||||
void CLCDAPI::LockDisplay(int plock)
|
||||
{
|
||||
if (plock)
|
||||
{
|
||||
FILE *lfh=fopen("/tmp/lcd.locked","w");
|
||||
if(lfh)
|
||||
{
|
||||
fprintf(lfh,"lcdlock");
|
||||
fclose(lfh);
|
||||
usleep(100000L);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
remove("/tmp/lcd.locked");
|
||||
}
|
||||
}
|
||||
|
||||
void CLCDAPI::DrawLine(int x1, int y1, int x2, int y2, int col)
|
||||
{
|
||||
#if HAVE_LCD
|
||||
int color=(col==0)?(CLCDDisplay::PIXEL_OFF):((col==2)?(CLCDDisplay::PIXEL_INV):(CLCDDisplay::PIXEL_ON));
|
||||
display.draw_line(x1,y1,x2,y2,color);
|
||||
#endif
|
||||
}
|
||||
|
||||
void CLCDAPI::DrawRect(int x1, int y1, int x2, int y2, int coll, int colf)
|
||||
{
|
||||
#if HAVE_LCD
|
||||
int colorl=(coll==0)?(CLCDDisplay::PIXEL_OFF):((coll==2)?(CLCDDisplay::PIXEL_INV):(CLCDDisplay::PIXEL_ON));
|
||||
int colorf=(colf==0)?(CLCDDisplay::PIXEL_OFF):((colf==2)?(CLCDDisplay::PIXEL_INV):(CLCDDisplay::PIXEL_ON));
|
||||
display.draw_rectangle(x1,y1,x2,y2,colorl,colorf);
|
||||
#endif
|
||||
}
|
||||
|
||||
void CLCDAPI::DrawText(int px, int py, int psize, int pcolor, int pfont, char *pmsg)
|
||||
{
|
||||
#if HAVE_LCD
|
||||
int color=(pcolor==0)?(CLCDDisplay::PIXEL_OFF):((pcolor==2)?(CLCDDisplay::PIXEL_INV):(CLCDDisplay::PIXEL_ON));
|
||||
if(!(font = fontRenderer->getFont(font_name[pfont], style_name[pfont], psize)))
|
||||
{
|
||||
printf("[nhttpd] Kein Font gefunden.\n");
|
||||
return;
|
||||
}
|
||||
font->RenderString(px, py, 130, pmsg, color, 0, true); // UTF-8
|
||||
#endif
|
||||
}
|
||||
|
||||
bool CLCDAPI::ShowPng(char *filename)
|
||||
{
|
||||
#if HAVE_LCD
|
||||
return display.load_png(filename);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
void CLCDAPI::ShowRaw(int xpos, int ypos, int xsize, int ysize, char *ascreen)
|
||||
{
|
||||
#if HAVE_LCD
|
||||
int sbyte,dbit,dxpos,dypos,wasinc=0,gotval;
|
||||
char *sptr=ascreen;
|
||||
raw_display_t rscreen;
|
||||
|
||||
display.dump_screen(&rscreen);
|
||||
gotval=sscanf(sptr,"%d",&sbyte);
|
||||
for(dypos=ypos; gotval && (dypos<(ypos+ysize)); dypos++)
|
||||
{
|
||||
dbit=7;
|
||||
for(dxpos=xpos; gotval && (dxpos<(xpos+xsize)); dxpos++)
|
||||
{
|
||||
wasinc=0;
|
||||
if((dypos<LCD_ROWS*8) && (dxpos<LCD_COLS))
|
||||
{
|
||||
rscreen[dypos][dxpos]=(sbyte & (1<<dbit))?1:0;
|
||||
}
|
||||
if(--dbit<0)
|
||||
{
|
||||
dbit=7;
|
||||
if((sptr=strchr(sptr,','))!=NULL)
|
||||
{
|
||||
gotval=sscanf(++sptr,"%d",&sbyte);
|
||||
}
|
||||
else
|
||||
{
|
||||
gotval=0;
|
||||
}
|
||||
wasinc=1;
|
||||
}
|
||||
}
|
||||
if(!wasinc)
|
||||
{
|
||||
if((sptr=strchr(sptr,','))!=NULL)
|
||||
{
|
||||
gotval=sscanf(++sptr,"%d",&sbyte);
|
||||
}
|
||||
else
|
||||
{
|
||||
gotval=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
display.load_screen(&rscreen);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// Konstruktor und destruktor
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
CLCDAPI::CLCDAPI()
|
||||
{
|
||||
#if HAVE_LCD
|
||||
// int i;
|
||||
|
||||
|
||||
// display = new CLCDDisplay();
|
||||
fontRenderer = new LcdFontRenderClass(&display);
|
||||
style_name[0] = fontRenderer->AddFont("/share/fonts/micron.ttf");
|
||||
style_name[1] = fontRenderer->AddFont("/share/fonts/micron_bold.ttf");
|
||||
style_name[2] = fontRenderer->AddFont("/share/fonts/pakenham.ttf");
|
||||
fontRenderer->InitFontCache();
|
||||
/* for(i=0; i<3; i++)
|
||||
{
|
||||
if(font=fontRenderer->getFont(font_name[i], style_name[i], 14))
|
||||
{
|
||||
font->RenderString(10, 10, 30, "X", CLCDDisplay::PIXEL_OFF, 0, true);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
#endif
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
CLCDAPI::~CLCDAPI(void)
|
||||
{
|
||||
#if HAVE_LCD
|
||||
if(fontRenderer)
|
||||
{
|
||||
delete fontRenderer;
|
||||
}
|
||||
/* if(display)
|
||||
{
|
||||
delete display;
|
||||
}
|
||||
*/
|
||||
#endif
|
||||
}
|
@@ -1,61 +0,0 @@
|
||||
/*
|
||||
nhttpd - DBoxII-Project
|
||||
|
||||
Copyright (C) 2001/2002 Dirk Szymanski 'Dirch'
|
||||
Copyright (C) 2005 SnowHead
|
||||
|
||||
$Id: lcdapi.h,v 1.1.2.1 2010/02/21 10:10:12 cvs Exp $
|
||||
|
||||
License: GPL
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
#ifndef __nhttpd_lcdapi_h__
|
||||
#define __nhttpd_lcdapi_h__
|
||||
|
||||
// tuxbox
|
||||
#if HAVE_LCD
|
||||
#include <driver/lcdd.h>
|
||||
#include <lcddisplay/lcddisplay.h>
|
||||
#include <lcddisplay/fontrenderer.h>
|
||||
#endif
|
||||
|
||||
class CLCDDisplay;
|
||||
class LcdFontRenderClass;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
class CLCDAPI
|
||||
{
|
||||
#if HAVE_LCD
|
||||
CLCDDisplay display;
|
||||
LcdFontRenderClass *fontRenderer;
|
||||
LcdFont *font;
|
||||
#endif
|
||||
const char *style_name[3];
|
||||
public:
|
||||
CLCDAPI();
|
||||
~CLCDAPI(void);
|
||||
void LockDisplay(int lock);
|
||||
void DrawText(int px, int py, int psize, int pcolor, int pfont, char *pmsg);
|
||||
void DrawLine(int x1, int y1, int x2, int y2, int col);
|
||||
void DrawRect(int x1, int y1, int x2, int y2, int coll, int colf);
|
||||
bool ShowPng(char *filename);
|
||||
void ShowRaw(int xpos, int ypos, int xsize, int ysize, char *screen);
|
||||
void Update(void);
|
||||
void Clear(void);
|
||||
};
|
||||
|
||||
#endif /* __nhttpd_lcdapi_h__ */
|
@@ -1,424 +0,0 @@
|
||||
//=============================================================================
|
||||
// NHTTPD
|
||||
// NeutrionAPI
|
||||
//
|
||||
// Aggregates: NeutrinoYParser, NeutrinoControlAPI
|
||||
// Defines Interfaces to:CControldClient, CSectionsdClient, CZapitClient,
|
||||
// CTimerdClient,CLCDAPI
|
||||
// Place for common used Neutrino-functions used by NeutrinoYParser, NeutrinoControlAPI
|
||||
//=============================================================================
|
||||
|
||||
// C
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
// C++
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <map>
|
||||
|
||||
// tuxbox
|
||||
#include <neutrinoMessages.h>
|
||||
|
||||
#include <zapit/client/zapitclient.h>
|
||||
#include <zapit/channel.h>
|
||||
#include <zapit/bouquets.h>
|
||||
extern tallchans allchans;
|
||||
extern CBouquetManager *g_bouquetManager;
|
||||
|
||||
// yhttpd
|
||||
#include "ylogging.h"
|
||||
|
||||
// nhttpd
|
||||
#include "neutrinoapi.h"
|
||||
#include "lcdapi.h"
|
||||
void sectionsd_getChannelEvents(CChannelEventList &eList, const bool tv_mode = true, t_channel_id *chidlist = NULL, int clen = 0);
|
||||
|
||||
//=============================================================================
|
||||
// No Class Helpers
|
||||
//=============================================================================
|
||||
|
||||
static std::map<std::string, std::string> iso639;
|
||||
#ifndef initialize_iso639_map
|
||||
bool _initialize_iso639_map(void)
|
||||
{
|
||||
std::string s, t, u, v;
|
||||
std::ifstream in("/share/iso-codes/iso-639.tab");
|
||||
if (in.is_open())
|
||||
{
|
||||
while (in.peek() == '#')
|
||||
getline(in, s);
|
||||
while (in >> s >> t >> u >> std::ws)
|
||||
{
|
||||
getline(in, v);
|
||||
iso639[s] = v;
|
||||
if (s != t)
|
||||
iso639[t] = v;
|
||||
}
|
||||
in.close();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
//-----------------------------------------------------------------------------
|
||||
const char * _getISO639Description(const char * const iso)
|
||||
{
|
||||
std::map<std::string, std::string>::const_iterator it = iso639.find(std::string(iso));
|
||||
if (it == iso639.end())
|
||||
return iso;
|
||||
else
|
||||
return it->second.c_str();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// Initialization of static variables
|
||||
//=============================================================================
|
||||
std::string CNeutrinoAPI::Dbox_Hersteller[4] = {"none", "Nokia", "Philips", "Sagem"};
|
||||
std::string CNeutrinoAPI::videooutput_names[5] = {"CVBS", "RGB with CVBS", "S-Video", "YUV with VBS", "YUV with CVBS"};
|
||||
std::string CNeutrinoAPI::videoformat_names[4] = {"automatic", "16:9", "4:3 (LB)", "4:3 (PS)"};
|
||||
std::string CNeutrinoAPI::audiotype_names[5] = {"none", "single channel","dual channel","joint stereo","stereo"};
|
||||
|
||||
//=============================================================================
|
||||
// Constructor & Destructor
|
||||
//=============================================================================
|
||||
CNeutrinoAPI::CNeutrinoAPI()
|
||||
{
|
||||
Controld = new CControldClient();
|
||||
Sectionsd = new CSectionsdClient();
|
||||
Zapit = new CZapitClient();
|
||||
Timerd = new CTimerdClient();
|
||||
|
||||
NeutrinoYParser = new CNeutrinoYParser(this);
|
||||
ControlAPI = new CControlAPI(this);
|
||||
LcdAPI = new CLCDAPI();
|
||||
|
||||
UpdateBouquets();
|
||||
|
||||
EventServer = new CEventServer;
|
||||
EventServer->registerEvent2( NeutrinoMessages::SHUTDOWN, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::STANDBY_ON, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::STANDBY_OFF, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::STANDBY_TOGGLE, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::EVT_POPUP, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::EVT_EXTMSG, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::CHANGEMODE, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::EVT_START_PLUGIN, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::LOCK_RC, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::UNLOCK_RC, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::ESOUND_ON, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::ESOUND_OFF, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
CNeutrinoAPI::~CNeutrinoAPI(void)
|
||||
{
|
||||
if (LcdAPI)
|
||||
delete LcdAPI;
|
||||
if (NeutrinoYParser)
|
||||
delete NeutrinoYParser;
|
||||
if (ControlAPI)
|
||||
delete ControlAPI;
|
||||
if (Controld)
|
||||
delete Controld;
|
||||
if (Sectionsd)
|
||||
delete Sectionsd;
|
||||
if (Zapit)
|
||||
delete Zapit;
|
||||
if (Timerd)
|
||||
delete Timerd;
|
||||
if (EventServer)
|
||||
delete EventServer;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
void CNeutrinoAPI::UpdateBouquets(void)
|
||||
{
|
||||
BouquetList.clear();
|
||||
Zapit->getBouquets(BouquetList, true);
|
||||
for (unsigned int i = 1; i <= BouquetList.size(); i++)
|
||||
UpdateBouquet(i);
|
||||
|
||||
UpdateChannelList();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
void CNeutrinoAPI::ZapTo(const char * const target)
|
||||
{
|
||||
t_channel_id channel_id;
|
||||
|
||||
sscanf(target,
|
||||
SCANF_CHANNEL_ID_TYPE,
|
||||
&channel_id);
|
||||
|
||||
ZapToChannelId(channel_id);
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
void CNeutrinoAPI::ZapToChannelId(t_channel_id channel_id)
|
||||
{
|
||||
if (channel_id == Zapit->getCurrentServiceID())
|
||||
{
|
||||
//printf("Kanal ist aktuell\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Zapit->zapTo_serviceID(channel_id) != CZapitClient::ZAP_INVALID_PARAM)
|
||||
Sectionsd->setServiceChanged(channel_id, false);
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
void CNeutrinoAPI::ZapToSubService(const char * const target)
|
||||
{
|
||||
t_channel_id channel_id;
|
||||
|
||||
sscanf(target,
|
||||
SCANF_CHANNEL_ID_TYPE,
|
||||
&channel_id);
|
||||
|
||||
if (Zapit->zapTo_subServiceID(channel_id) != CZapitClient::ZAP_INVALID_PARAM)
|
||||
Sectionsd->setServiceChanged(channel_id, false);
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
t_channel_id CNeutrinoAPI::ChannelNameToChannelId(std::string search_channel_name)
|
||||
{
|
||||
//FIXME depending on mode missing
|
||||
//int mode = Zapit->getMode();
|
||||
t_channel_id channel_id = (t_channel_id)-1;
|
||||
CStringArray channel_names = ySplitStringVector(search_channel_name, ",");
|
||||
CZapitClient::BouquetChannelList *channellist = GetChannelList(CZapitClient::MODE_CURRENT);
|
||||
CZapitClient::BouquetChannelList::iterator channel = channellist->begin();
|
||||
for(; channel != channellist->end();channel++)
|
||||
{
|
||||
std::string channel_name = channel->name;
|
||||
for(unsigned int j=0;j<channel_names.size();j++)
|
||||
{
|
||||
if(channel_names[j].length() == channel_name.length() &&
|
||||
equal(channel_names[j].begin(), channel_names[j].end(),
|
||||
channel_name.begin(), nocase_compare)) //case insensitive compare
|
||||
{
|
||||
channel_id = channel->channel_id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return channel_id;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// Get functions
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
bool CNeutrinoAPI::GetStreamInfo(int bitInfo[10])
|
||||
{
|
||||
char *key, *tmpptr, buf[100];
|
||||
long value;
|
||||
int pos = 0;
|
||||
|
||||
memset(bitInfo, 0, sizeof(bitInfo));
|
||||
|
||||
FILE *fd = fopen("/proc/bus/bitstream", "rt");
|
||||
|
||||
if (fd == NULL)
|
||||
{
|
||||
dprintf("error while opening proc-bitstream\n" );
|
||||
return false;
|
||||
}
|
||||
|
||||
fgets(buf,35,fd);//dummy
|
||||
while(!feof(fd))
|
||||
{
|
||||
if(fgets(buf,35,fd)!=NULL)
|
||||
{
|
||||
buf[strlen(buf)-1]=0;
|
||||
tmpptr=buf;
|
||||
key=strsep(&tmpptr,":");
|
||||
value=strtoul(tmpptr,NULL,0);
|
||||
bitInfo[pos]= value;
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
bitInfo[4] = 37500;
|
||||
bitInfo[6] = 3;
|
||||
fclose(fd);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
bool CNeutrinoAPI::GetChannelEvents(void)
|
||||
{
|
||||
eList = Sectionsd->getChannelEvents();
|
||||
CChannelEventList::iterator eventIterator;
|
||||
|
||||
ChannelListEvents.clear();
|
||||
|
||||
if (eList.begin() == eList.end())
|
||||
return false;
|
||||
|
||||
for (eventIterator = eList.begin(); eventIterator != eList.end(); eventIterator++)
|
||||
ChannelListEvents[(*eventIterator).get_channel_id()] = &(*eventIterator);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
std::string CNeutrinoAPI::GetServiceName(t_channel_id channel_id)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < TVChannelList.size(); i++)
|
||||
if (TVChannelList[i].channel_id == channel_id)
|
||||
return TVChannelList[i].name;
|
||||
for (i = 0; i < RadioChannelList.size(); i++)
|
||||
if (RadioChannelList[i].channel_id == channel_id)
|
||||
return RadioChannelList[i].name;
|
||||
return "";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
CZapitClient::BouquetChannelList *CNeutrinoAPI::GetBouquet(unsigned int BouquetNr, int Mode)
|
||||
{
|
||||
int mode;
|
||||
|
||||
if (Mode == CZapitClient::MODE_CURRENT)
|
||||
mode = Zapit->getMode();
|
||||
else
|
||||
mode = Mode;
|
||||
|
||||
if (mode == CZapitClient::MODE_TV)
|
||||
return &TVBouquetsList[BouquetNr];
|
||||
else
|
||||
return &RadioBouquetsList[BouquetNr];
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
CZapitClient::BouquetChannelList *CNeutrinoAPI::GetChannelList(int Mode)
|
||||
{
|
||||
int mode;
|
||||
|
||||
if (Mode == CZapitClient::MODE_CURRENT)
|
||||
mode = Zapit->getMode();
|
||||
else
|
||||
mode = Mode;
|
||||
|
||||
if (mode == CZapitClient::MODE_TV)
|
||||
return &TVChannelList;
|
||||
else
|
||||
return &RadioChannelList;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
void CNeutrinoAPI::UpdateBouquet(unsigned int BouquetNr)
|
||||
{
|
||||
TVBouquetsList[BouquetNr].clear();
|
||||
RadioBouquetsList[BouquetNr].clear();
|
||||
Zapit->getBouquetChannels(BouquetNr - 1, TVBouquetsList[BouquetNr], CZapitClient::MODE_TV);
|
||||
Zapit->getBouquetChannels(BouquetNr - 1, RadioBouquetsList[BouquetNr], CZapitClient::MODE_RADIO);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
void CNeutrinoAPI::UpdateChannelList(void)
|
||||
{
|
||||
TVChannelList.clear();
|
||||
RadioChannelList.clear();
|
||||
Zapit->getChannels(RadioChannelList, CZapitClient::MODE_RADIO);
|
||||
Zapit->getChannels(TVChannelList, CZapitClient::MODE_TV);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
std::string CNeutrinoAPI::timerEventType2Str(CTimerd::CTimerEventTypes type)
|
||||
{
|
||||
std::string result;
|
||||
switch (type) {
|
||||
case CTimerd::TIMER_SHUTDOWN:
|
||||
result = "Shutdown";
|
||||
break;
|
||||
case CTimerd::TIMER_NEXTPROGRAM:
|
||||
result = "Next program";
|
||||
break;
|
||||
case CTimerd::TIMER_ZAPTO:
|
||||
result = "Zap to";
|
||||
break;
|
||||
case CTimerd::TIMER_STANDBY:
|
||||
result = "Standby";
|
||||
break;
|
||||
case CTimerd::TIMER_RECORD:
|
||||
result = "Record";
|
||||
break;
|
||||
case CTimerd::TIMER_REMIND:
|
||||
result = "Reminder";
|
||||
break;
|
||||
case CTimerd::TIMER_EXEC_PLUGIN:
|
||||
result = "Execute plugin";
|
||||
break;
|
||||
case CTimerd::TIMER_SLEEPTIMER:
|
||||
result = "Sleeptimer";
|
||||
break;
|
||||
default:
|
||||
result = "Unknown";
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
std::string CNeutrinoAPI::timerEventRepeat2Str(CTimerd::CTimerEventRepeat rep)
|
||||
{
|
||||
std::string result;
|
||||
switch (rep) {
|
||||
case CTimerd::TIMERREPEAT_ONCE:
|
||||
result = "once";
|
||||
break;
|
||||
case CTimerd::TIMERREPEAT_DAILY:
|
||||
result = "daily";
|
||||
break;
|
||||
case CTimerd::TIMERREPEAT_WEEKLY:
|
||||
result = "weekly";
|
||||
break;
|
||||
case CTimerd::TIMERREPEAT_BIWEEKLY:
|
||||
result = "2-weekly";
|
||||
break;
|
||||
case CTimerd::TIMERREPEAT_FOURWEEKLY:
|
||||
result = "4-weekly";
|
||||
break;
|
||||
case CTimerd::TIMERREPEAT_MONTHLY:
|
||||
result = "monthly";
|
||||
break;
|
||||
case CTimerd::TIMERREPEAT_BYEVENTDESCRIPTION:
|
||||
result = "event";
|
||||
break;
|
||||
case CTimerd::TIMERREPEAT_WEEKDAYS:
|
||||
result = "weekdays";
|
||||
break;
|
||||
default:
|
||||
if (rep > CTimerd::TIMERREPEAT_WEEKDAYS)
|
||||
{
|
||||
if (rep & 0x0200)
|
||||
result += "Mo ";
|
||||
if (rep & 0x0400)
|
||||
result += "Tu ";
|
||||
if (rep & 0x0800)
|
||||
result += "We ";
|
||||
if (rep & 0x1000)
|
||||
result += "Th ";
|
||||
if (rep & 0x2000)
|
||||
result += "Fr ";
|
||||
if (rep & 0x4000)
|
||||
result += "Sa ";
|
||||
if (rep & 0x8000)
|
||||
result += "Su ";
|
||||
}
|
||||
else
|
||||
result = "Unknown";
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@@ -1,90 +0,0 @@
|
||||
#ifndef __nhttpd_neutrinoapi_h__
|
||||
#define __nhttpd_neutrinoapi_h__
|
||||
|
||||
// c++
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
// tuxbox
|
||||
#include <controldclient/controldclient.h>
|
||||
#include <eventserver.h>
|
||||
#include <sectionsdclient/sectionsdclient.h>
|
||||
#include <timerdclient/timerdclient.h>
|
||||
#include <zapit/client/zapitclient.h>
|
||||
|
||||
// nhttpd
|
||||
#include "helper.h"
|
||||
#include "lcdapi.h"
|
||||
#include "neutrinoyparser.h"
|
||||
#include "controlapi.h"
|
||||
#include "lcdapi.h"
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// No Class Helpers
|
||||
const char * _getISO639Description(const char * const iso);
|
||||
bool _initialize_iso639_map(void);
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
class CNeutrinoAPI
|
||||
{
|
||||
// Clientlibs
|
||||
CControldClient *Controld;
|
||||
CSectionsdClient *Sectionsd;
|
||||
CZapitClient *Zapit;
|
||||
CTimerdClient *Timerd;
|
||||
CLCDAPI *LcdAPI;
|
||||
CEventServer *EventServer;
|
||||
|
||||
// complete channellists
|
||||
CZapitClient::BouquetChannelList RadioChannelList,TVChannelList;
|
||||
// events of actual channel
|
||||
std::map<unsigned, CChannelEvent *> ChannelListEvents;
|
||||
// List of available tv bouquets
|
||||
std::map<int, CZapitClient::BouquetChannelList> TVBouquetsList;
|
||||
// List of available radio bouquets
|
||||
std::map<int, CZapitClient::BouquetChannelList> RadioBouquetsList;
|
||||
// List of bouquets
|
||||
CZapitClient::BouquetList BouquetList;
|
||||
|
||||
//bool standby_mode;
|
||||
|
||||
// some constants
|
||||
static std::string Dbox_Hersteller[4];
|
||||
static std::string videooutput_names[5];
|
||||
static std::string videoformat_names[4];
|
||||
static std::string audiotype_names[5];
|
||||
|
||||
// get functions to collect data
|
||||
bool GetChannelEvents(void);
|
||||
bool GetStreamInfo(int bitinfo[10]);
|
||||
std::string GetServiceName(t_channel_id channel_id);
|
||||
CZapitClient::BouquetChannelList *GetBouquet(unsigned int BouquetNr, int Mode);
|
||||
CZapitClient::BouquetChannelList *GetChannelList(int Mode);
|
||||
|
||||
// support functions
|
||||
void ZapTo (const char * const target);
|
||||
void ZapToSubService(const char * const target);
|
||||
void ZapToChannelId (t_channel_id channel_id);
|
||||
t_channel_id ChannelNameToChannelId(std::string search_channel_name);
|
||||
|
||||
void UpdateBouquet(unsigned int BouquetNr);
|
||||
void UpdateChannelList(void);
|
||||
void UpdateBouquets(void);
|
||||
|
||||
std::string timerEventType2Str(CTimerd::CTimerEventTypes type);
|
||||
std::string timerEventRepeat2Str(CTimerd::CTimerEventRepeat rep);
|
||||
|
||||
public:
|
||||
CNeutrinoAPI();
|
||||
~CNeutrinoAPI(void);
|
||||
|
||||
CChannelEventList eList;
|
||||
CNeutrinoYParser *NeutrinoYParser;
|
||||
CControlAPI *ControlAPI;
|
||||
|
||||
friend class CNeutrinoYParser; // Backreference
|
||||
friend class CNeutrinoYParserCoolstream; // Backreference
|
||||
friend class CControlAPI;
|
||||
};
|
||||
|
||||
#endif /*__nhttpd_neutrinoapi_h__*/
|
File diff suppressed because it is too large
Load Diff
@@ -1,70 +0,0 @@
|
||||
//=============================================================================
|
||||
// NHTTPD
|
||||
// Neutrino yParser Extenstion
|
||||
//=============================================================================
|
||||
|
||||
#ifndef __nhttpd_neutrinoyparser_h__
|
||||
#define __nhttpd_neutrinoyparser_h__
|
||||
|
||||
// c++
|
||||
#include <string>
|
||||
// yhttpd
|
||||
#include "yhttpd.h"
|
||||
#include "ytypes_globals.h"
|
||||
#include "mod_yparser.h"
|
||||
|
||||
// forward declaration
|
||||
class CNeutrinoAPI;
|
||||
//-----------------------------------------------------------------------------
|
||||
class CNeutrinoYParser : public CyParser
|
||||
{
|
||||
private:
|
||||
// yParser funcs for Tuxbox
|
||||
typedef std::string (CNeutrinoYParser::*TyFunc)(CyhookHandler *hh, std::string para);
|
||||
typedef struct
|
||||
{
|
||||
const char *func_name;
|
||||
TyFunc pfunc;
|
||||
} TyFuncCall;
|
||||
const static TyFuncCall yFuncCallList[];
|
||||
|
||||
// func TUXBOX
|
||||
std::string func_mount_get_list(CyhookHandler *hh, std::string para);
|
||||
std::string func_mount_set_values(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_bouquets_as_dropdown(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_bouquets_as_templatelist(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_actual_bouquet_number(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_channels_as_dropdown(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_actual_channel_id(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_bouquets_with_epg(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_mode(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_video_pids(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_radio_pid(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_audio_pids_as_dropdown(CyhookHandler *hh, std::string para);
|
||||
std::string func_unmount_get_list(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_partition_list(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_boxtype(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_current_stream_info(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_timer_list(CyhookHandler *hh, std::string para);
|
||||
std::string func_set_timer_form(CyhookHandler *hh, std::string para);
|
||||
std::string func_bouquet_editor_main(CyhookHandler *hh, std::string para);
|
||||
std::string func_set_bouquet_edit_form(CyhookHandler *hh, std::string para);
|
||||
|
||||
protected:
|
||||
CNeutrinoAPI *NeutrinoAPI;
|
||||
|
||||
public:
|
||||
// constructor & deconstructor
|
||||
CNeutrinoYParser(CNeutrinoAPI *_NeutrinoAPI);
|
||||
virtual ~CNeutrinoYParser(void);
|
||||
|
||||
// virtual functions for BaseClass
|
||||
virtual std::string YWeb_cgi_func(CyhookHandler *hh, std::string ycmd);
|
||||
// virtual functions for HookHandler/Hook
|
||||
virtual std::string getHookName(void) {return std::string("mod_NeutrinoYParser");}
|
||||
virtual std::string getHookVersion(void) {return std::string("$Revision$");}
|
||||
virtual THandleStatus Hook_SendResponse(CyhookHandler *hh);
|
||||
virtual THandleStatus Hook_ReadConfig(CConfigFile *Config, CStringList &ConfigList);
|
||||
};
|
||||
|
||||
#endif /*__nhttpd_neutrinoyparser_h__*/
|
@@ -189,8 +189,7 @@ void CNeutrinoAPI::ZapToChannelId(t_channel_id channel_id)
|
||||
}
|
||||
|
||||
CMoviePlayerGui::getInstance().stopPlayBack();
|
||||
if (Zapit->zapTo_serviceID(channel_id) != CZapitClient::ZAP_INVALID_PARAM)
|
||||
Sectionsd->setServiceChanged(channel_id, false);
|
||||
Zapit->zapTo_serviceID(channel_id);
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
@@ -203,8 +202,7 @@ void CNeutrinoAPI::ZapToSubService(const char * const target)
|
||||
&channel_id);
|
||||
|
||||
CMoviePlayerGui::getInstance().stopPlayBack();
|
||||
if (Zapit->zapTo_subServiceID(channel_id) != CZapitClient::ZAP_INVALID_PARAM)
|
||||
Sectionsd->setServiceChanged(channel_id, false);
|
||||
Zapit->zapTo_subServiceID(channel_id);
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
t_channel_id CNeutrinoAPI::ChannelNameToChannelId(std::string search_channel_name)
|
@@ -112,6 +112,7 @@ const CNeutrinoYParser::TyFuncCall CNeutrinoYParser::yFuncCallList[]=
|
||||
{"get_channels_as_dropdown", &CNeutrinoYParser::func_get_channels_as_dropdown},
|
||||
{"get_bouquets_with_epg", &CNeutrinoYParser::func_get_bouquets_with_epg},
|
||||
{"get_actual_channel_id", &CNeutrinoYParser::func_get_actual_channel_id},
|
||||
{"get_logo_name", &CNeutrinoYParser::func_get_logo_name},
|
||||
{"get_mode", &CNeutrinoYParser::func_get_mode},
|
||||
{"get_video_pids", &CNeutrinoYParser::func_get_video_pids},
|
||||
{"get_audio_pid", &CNeutrinoYParser::func_get_radio_pid},
|
||||
@@ -300,11 +301,11 @@ std::string CNeutrinoYParser::func_get_channels_as_dropdown(CyhookHandler *, st
|
||||
CEPGData epg;
|
||||
CZapitChannel * channel = channels[j];
|
||||
char buf[100],id[20];
|
||||
sprintf(id,PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS,channel->getChannelID());
|
||||
snprintf(id,sizeof(id),PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS,channel->getChannelID());
|
||||
std::string _sid = std::string(id);
|
||||
sel = (_sid == achannel_id) ? "selected=\"selected\"" : "";
|
||||
CEitManager::getInstance()->getActualEPGServiceKey(channel->getChannelID(), &epg);
|
||||
sprintf(buf,"<option value=" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS " %s>%.20s - %.30s</option>\n", channel->getChannelID(), sel.c_str(), channel->getName().c_str(),epg.title.c_str());
|
||||
snprintf(buf,sizeof(buf),"<option value=" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS " %s>%.20s - %.30s</option>\n", channel->getChannelID(), sel.c_str(), channel->getName().c_str(),epg.title.c_str());
|
||||
yresult += buf;
|
||||
}
|
||||
}
|
||||
@@ -351,8 +352,9 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std:
|
||||
std::string timestr;
|
||||
bool have_logos = false;
|
||||
|
||||
if(!hh->WebserverConfigList["Tuxbox.LogosURL"].empty())
|
||||
if (!hh->WebserverConfigList["Tuxbox.LogosURL"].empty() && hh->WebserverConfigList["Tuxbox.DisplayLogos"] == "true" )
|
||||
have_logos = true;
|
||||
|
||||
for(int j = 0; j < (int) channels.size(); j++)
|
||||
{
|
||||
CZapitChannel * channel = channels[j];
|
||||
@@ -366,11 +368,33 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std:
|
||||
std::string bouquetstr = (BouquetNr >= 0) ? ("&bouquet=" + itoa(BouquetNr)) : "";
|
||||
yresult += "<tr>";
|
||||
|
||||
if(have_logos)
|
||||
yresult += string_printf("<td class=\"%c logo_cell\" width=\"44\" rowspan=\"2\"><a href=\"javascript:do_zap('"
|
||||
PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS
|
||||
"')\"><img class=\"channel_logo\" src=\"%s\"/></a></td>", classname, channel->getChannelID(),
|
||||
(NeutrinoAPI->getLogoFile(hh->WebserverConfigList["Tuxbox.LogosURL"], channel->getChannelID())).c_str());
|
||||
if (have_logos) {
|
||||
std::string channel_logo = NeutrinoAPI->getLogoFile(hh->WebserverConfigList["Tuxbox.LogosURL"], channel->getChannelID());
|
||||
std::string zaplink;
|
||||
if (channel_logo.empty())
|
||||
zaplink = channel->getName().c_str();
|
||||
else
|
||||
zaplink = string_printf(
|
||||
"<img class=\"channel_logo\" src=\"%s\" title=\"%s\" alt=\"%s\" />"
|
||||
, channel_logo.c_str()
|
||||
, channel->getName().c_str()
|
||||
, channel->getName().c_str()
|
||||
);
|
||||
|
||||
yresult += string_printf(
|
||||
"<td class=\"%c logo_cell %s\" width=\"44\" rowspan=\"2\">"
|
||||
"<a href=\"javascript:do_zap('"PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS"')\">"
|
||||
"%s"
|
||||
"</a>"
|
||||
"</td>"
|
||||
, classname
|
||||
, (channel_logo.empty() ? "no_logo" : "")
|
||||
, channel->getChannelID()
|
||||
, zaplink.c_str()
|
||||
, channel->getName().c_str()
|
||||
, channel->getName().c_str()
|
||||
);
|
||||
}
|
||||
|
||||
/* timer slider */
|
||||
if(event && event->duration > 0)
|
||||
@@ -473,7 +497,7 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std:
|
||||
|
||||
yresult += string_printf("<tr><td class=\"%cepg\">",classname);
|
||||
yresult += string_printf("%s %s "
|
||||
"<span style=\"font-size: 8pt; white-space: nowrap\">(%ld {=L:von=} %d {=L:min=}, %d%%)</span>"
|
||||
"<span style=\"font-size: 8pt; white-space: nowrap\">(%ld {=L:from=} %d {=L:unit.short.minute=}, %d%%)</span>"
|
||||
, timestr.c_str()
|
||||
, event->description.c_str()
|
||||
, (time(NULL) - event->startTime)/60
|
||||
@@ -499,6 +523,20 @@ std::string CNeutrinoYParser::func_get_actual_channel_id(CyhookHandler *, std::
|
||||
{
|
||||
return string_printf(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, CZapit::getInstance()->GetCurrentChannelID());
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// func: Get Logo Name
|
||||
//-------------------------------------------------------------------------
|
||||
std::string CNeutrinoYParser::func_get_logo_name(CyhookHandler *hh, std::string channelId)
|
||||
{
|
||||
if (hh->WebserverConfigList["Tuxbox.DisplayLogos"] == "true") {
|
||||
t_channel_id cid;
|
||||
if (1 == sscanf(channelId.c_str(), "%llx", &cid))
|
||||
return NeutrinoAPI->getLogoFile(hh->WebserverConfigList["Tuxbox.LogosURL"], cid);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// y-func : get_mode (returns tv|radio|unknown)
|
||||
//-------------------------------------------------------------------------
|
@@ -36,6 +36,7 @@ private:
|
||||
std::string func_get_actual_bouquet_number(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_channels_as_dropdown(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_actual_channel_id(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_logo_name(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_bouquets_with_epg(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_mode(CyhookHandler *hh, std::string para);
|
||||
std::string func_get_video_pids(CyhookHandler *hh, std::string para);
|
@@ -1,3 +0,0 @@
|
||||
|
||||
|
||||
Johannes Golombek [yjogol@cvs.tuxbox.org]
|
@@ -1,6 +1,6 @@
|
||||
SUBDIRS = images scripts languages styles
|
||||
|
||||
installdir = $(DATADIR)/neutrino/httpd
|
||||
installdir = $(PRIVATE_HTTPDDIR)
|
||||
|
||||
install_DATA = channels.js \
|
||||
channels.txt \
|
||||
|
@@ -3,8 +3,19 @@
|
||||
$Revision$
|
||||
*/
|
||||
var baselib_version="2.0.0";
|
||||
var agt=navigator.userAgent.toLowerCase();
|
||||
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
|
||||
var tmp = document.documentMode, e, isIE;
|
||||
// Try to force this property to be a string.
|
||||
try{document.documentMode = "";}
|
||||
catch(e){ };
|
||||
// If document.documentMode is a number, then it is a read-only property, and so
|
||||
// we have IE 8+.
|
||||
// Otherwise, if conditional compilation works, then we have IE < 11.
|
||||
// Otherwise, we have a non-IE browser.
|
||||
isIE = typeof document.documentMode == "number" || new Function("return/*@cc_on!@*/!1")( );
|
||||
// Switch back the value to be unobtrusive for non-IE browsers.
|
||||
try{document.documentMode = tmp;}
|
||||
catch(e){ };
|
||||
|
||||
/*DHTML-Basics*/
|
||||
function $yN(_obj_name)
|
||||
{
|
||||
|
@@ -59,6 +59,7 @@ start-block~nhttpd_save_settings
|
||||
{=ini-set:/var/tuxbox/config/nhttpd.conf;mod_sendfile.mime_types;{=mod_sendfile_mime_types=}~cache=}
|
||||
{=ini-set:/var/tuxbox/config/nhttpd.conf;mod_sendfile.sendAll;{=mod_sendfile_sendAll=}~cache=}
|
||||
{=ini-set:/var/tuxbox/config/nhttpd.conf;Language.selected;{=language=}~cache=}
|
||||
{=ini-set:/var/tuxbox/config/nhttpd.conf;Tuxbox.DisplayLogos;{=Tuxbox_DisplayLogos=}~cache=}
|
||||
{=ini-set:/var/tuxbox/config/nhttpd.conf;Tuxbox.LogosURL;{=Tuxbox_LogosURL=}~save=}
|
||||
{=func:do_reload_httpd_config=}
|
||||
end-block~nhttpd_save_settings
|
||||
@@ -542,52 +543,52 @@ end-block~remote
|
||||
start-block~rc_cst_v1
|
||||
<img src="images/rc_cst_v1.jpg" usemap="#rc" alt="remote" />
|
||||
<map name="rc" id="rc">
|
||||
<area shape="rect" href="javascript:rcsim('KEY_POWER')" coords="330, 38, 355, 68" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_MUTE')" coords="225, 37, 252, 66" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_1')" coords="220, 85, 259, 119" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_2')" coords="273, 79, 313, 104" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_3')" coords="330, 85, 365, 120" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_4')" coords="220, 125, 259, 160" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_5')" coords="273, 120, 313, 145" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_6')" coords="330, 125, 365, 160" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_7')" coords="220, 170, 259, 200" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_8')" coords="273, 160, 313, 185" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_9')" coords="330, 170, 365, 200" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_0')" coords="273, 200, 313, 230" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_INFO')" coords="330, 210, 365, 245" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_SETUP')" coords="215, 282, 240, 310" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_EPG')" coords="255, 247, 280, 275" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_FAVORITES')" coords="306, 247, 330, 275" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_HOME')" coords="340, 282, 365, 310" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_UP')" coords="265, 280, 320, 304" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_LEFT')" coords="243, 300, 262, 360" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_OK')" coords="276, 316, 307, 350" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_RIGHT')" coords="320, 304, 340, 365" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_DOWN')" coords="264, 360, 320, 385" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_VOLUMEUP')" coords="220, 367, 247, 396" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_VOLUMEDOWN')" coords="257, 396, 282, 425" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PAGEUP')" coords="336, 367, 360, 396" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PAGEDOWN')" coords="300, 396, 327, 425" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_TV')" coords="224, 422, 260, 455" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_TEXT')" coords="274, 439, 307, 463" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_RADIO')" coords="224, 422, 260, 455" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_RED')" coords="225, 468, 246, 492" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_GREEN')" coords="260, 480, 283, 505" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_YELLOW')" coords="295, 480, 318, 505" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_BLUE')" coords="333 470, 354, 492" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_SAT')" coords="220, 526, 259, 548" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_HELP')" coords="268, 530, 311, 550" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_NEXT')" coords="320, 530, 360, 548" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PREVIOUS')" coords="319, 561, 356, 580" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_TIME')" coords="223, 558, 260, 580" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_AUDIO')" coords="267, 562, 311, 583" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_REWIND')" coords="224, 589, 259, 612" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_FORWARD')" coords="266, 592, 310, 612" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PAUSE')" coords="318, 592, 352, 612" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_RECORD')" coords="224, 620, 259, 645" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_STOP')" coords="265, 625, 310, 645" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PLAY')" coords="315, 625, 350, 645" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_GAMES')" coords="318, 422, 360, 455" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_POWER')" coords="134, 38, 159, 68" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_MUTE')" coords="29, 37, 56, 66" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_1')" coords="24, 85, 63, 119" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_2')" coords="77, 79, 117, 104" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_3')" coords="134, 85, 169, 120" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_4')" coords="24, 125, 63, 160" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_5')" coords="77, 120, 117, 145" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_6')" coords="134, 125, 169, 160" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_7')" coords="24, 170, 63, 200" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_8')" coords="77, 160, 117, 185" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_9')" coords="134, 170, 169, 200" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_0')" coords="77, 200, 117, 230" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_INFO')" coords="134, 210, 169, 245" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_SETUP')" coords="19, 282, 44, 310" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_EPG')" coords="59, 247, 84, 275" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_FAVORITES')" coords="110, 247, 134, 275" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_HOME')" coords="144, 282, 169, 310" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_UP')" coords="69, 280, 124, 304" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_LEFT')" coords="47, 300, 66, 360" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_OK')" coords="80, 316, 111, 350" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_RIGHT')" coords="124, 304, 144, 365" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_DOWN')" coords="68, 360, 124, 385" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_VOLUMEUP')" coords="24, 367, 51, 396" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_VOLUMEDOWN')" coords="61, 396, 86, 425" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PAGEUP')" coords="140, 367, 164, 396" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PAGEDOWN')" coords="104, 396, 131, 425" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_TV')" coords="28, 422, 64, 455" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_TEXT')" coords="78, 439, 111, 463" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_RADIO')" coords="28, 422, 64, 455" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_RED')" coords="29, 468, 50, 492" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_GREEN')" coords="64, 480, 87, 505" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_YELLOW')" coords="99, 480, 122, 505" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_BLUE')" coords="137, 470, 158, 492" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_SAT')" coords="24, 526, 63, 548" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_HELP')" coords="72, 530, 115, 550" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_NEXT')" coords="124, 530, 164, 548" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PREVIOUS')" coords="123, 561, 160, 580" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_TIME')" coords="27, 558, 64, 580" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_AUDIO')" coords="71, 562, 115, 583" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_REWIND')" coords="28, 589, 63, 612" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_FORWARD')" coords="70, 592, 114, 612" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PAUSE')" coords="122, 592, 156, 612" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_RECORD')" coords="28, 620, 63, 645" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_STOP')" coords="69, 625, 114, 645" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_PLAY')" coords="119, 625, 154, 645" />
|
||||
<area shape="rect" href="javascript:rcsim('KEY_GAMES')" coords="122, 422, 164, 455" />
|
||||
</map>
|
||||
end-block~rc_cst_v1
|
||||
|
||||
|
@@ -129,7 +129,7 @@ function get_data(){
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
{=var-set:lcshot={=if-file-exists:/bin/lcshot~true~{=if-file-exists:/var/bin/lcshot~true~false=}=}=}
|
||||
{=var-set:lcshot={=find-exec:lcshot=}=}
|
||||
<body>
|
||||
<div class="y_menu_sec_box">
|
||||
<div class="y_menu_sec_box_head"><h2>{=L:main.boxcontrol=}</h2></div>
|
||||
@@ -150,7 +150,7 @@ function get_data(){
|
||||
</li>
|
||||
{=if-not-equal:{=global-var-get:boxtype=}~coolstream~
|
||||
<li>
|
||||
{=if-equal:{=var-get:lcshot=}~true~
|
||||
{=if-empty:{=var-get:lcshot=}~
|
||||
<a target="work" title="{=L:bc.menue.lcd_screenshot_desc=}" href="Y_Tools_lcshot.yhtm">{=L:bc.menue.lcd_screenshot=}</a>
|
||||
~
|
||||
<a href="javascript:void(0)" class="disabled" title="{=L:bc.menue.lcd_screenshot_desc_ni=}">{=L:bc.menue.lcd_screenshot=}</a>
|
||||
|
@@ -150,13 +150,13 @@ function view_transcode_mode(){
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
haveUDP = ("{=if-file-exists:/sbin/udpstreamts~true~{=if-file-exists:/var/bin/udpstreamts~true~false=}=}" == "true");
|
||||
haveUDP = ("{=find-exec:udpstreamts=}" != "");
|
||||
isUDP = ("{=ini-get:/var/tuxbox/config/Y-Web.conf;udp;false=}" == "true");
|
||||
Mode = "{=mode=}";
|
||||
LiveTyp = "{=typ=}";
|
||||
ClientAddr = "{=func:get_request_data clientaddr=}";
|
||||
insert_message_control("{=L:live.build_vlc=}");
|
||||
isDeinterlace = ("{=ini-get:/var/tuxbox/config/Y-Web.conf;deinterlace;true=}" == "true");
|
||||
isDeinterlace = ("{=ini-get:/var/tuxbox/config/Y-Web.conf;deinterlace;false=}" == "true");
|
||||
cachetime = {=ini-get:/var/tuxbox/config/Y-Web.conf;http_caching;0=};
|
||||
Lgetting_channels="{=L:live.getting_channels=}";
|
||||
Lgetting_bouquets="{=L:live.getting_bouquets=}";
|
||||
|
@@ -106,7 +106,7 @@ function _show_epg()
|
||||
<table id="epglist" class="y_invisible_table" cellpadding="4" cellspacing="0" width="100%">
|
||||
<thead align="left">
|
||||
<tr>
|
||||
<th colspan="2"><img id="logo" src="{=ini-get:/var/tuxbox/config/nhttpd.conf;Tuxbox.LogosURL=}/{=logoid=}.png" style="visibility:hidden; max-width: 50px;"/> </th>
|
||||
<th colspan="2"><img id="logo" src="{=func:get_logo_name {=channel=}=}" style="visibility:hidden; max-width: 50px;"/></th>
|
||||
<th>{=L:date=}</th><th>{=L:from=}</th><th>{=L:to=}</th><th>{=L:program=}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@@ -8,6 +8,9 @@ function form_init()
|
||||
obj_set_radio_value('authenticate', "{=ini-get:/var/tuxbox/config/nhttpd.conf;mod_auth.authenticate;false=}");
|
||||
obj_set_radio_value('threading', "{=ini-get:/var/tuxbox/config/nhttpd.conf;webserver.threading;false=}");
|
||||
obj_set_radio_value('mod_sendfile_sendAll', "{=ini-get:/var/tuxbox/config/nhttpd.conf;mod_sendfile.sendAll;false=}");
|
||||
obj_set_radio_value('Tuxbox_DisplayLogos', "{=ini-get:/var/tuxbox/config/nhttpd.conf;Tuxbox.DisplayLogos;true=}"); // MARTII
|
||||
|
||||
do_check_input_LogosURL()
|
||||
}
|
||||
function do_submit()
|
||||
{
|
||||
@@ -22,6 +25,13 @@ function do_submit()
|
||||
document.f.submit();
|
||||
}
|
||||
}
|
||||
function do_check_input_LogosURL()
|
||||
{
|
||||
if(document.getElementById('Tuxbox_DisplayLogos').checked == true)
|
||||
document.f.Tuxbox_LogosURL.readOnly = false;
|
||||
else
|
||||
document.f.Tuxbox_LogosURL.readOnly = true;
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
@@ -98,6 +108,13 @@ function do_submit()
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan="2" class="y_form_header">{=L:logos=}</td></tr>
|
||||
<tr>
|
||||
<td>{=L:set.nhttpd.display_logos=}</td>
|
||||
<td>
|
||||
<input type="radio" name="Tuxbox_DisplayLogos" value="false" onClick="do_check_input_LogosURL()" />{=L:off=}
|
||||
<input type="radio" name="Tuxbox_DisplayLogos" value="true" onClick="do_check_input_LogosURL()" id="Tuxbox_DisplayLogos" />{=L:on=}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{=L:set.nhttpd.url_of_logos=}</td>
|
||||
<td><input type="text" name="Tuxbox_LogosURL" size="60" value="{=ini-get:/var/tuxbox/config/nhttpd.conf;Tuxbox.LogosURL~cache=}" title="{=L:set.nhttpd.url_of_logos_desc=}"/></td>
|
||||
|
@@ -42,9 +42,6 @@ function sLog_addRow(_body, state, action_text, state_text){
|
||||
function wiki_url(_page){
|
||||
return "<a href=\"http://wiki.dbox2-tuning.net/"+_page+"\" target='_blank'><b>[Help]<\/b><\/a>"
|
||||
}
|
||||
function y_url(_page){
|
||||
return "<a href=\"http://www.yjogol.com/"+_page+"\" target='_blank'><b>[Help]<\/b><\/a>"
|
||||
}
|
||||
function do_check(){
|
||||
sLog_init();
|
||||
sLog_clear();
|
||||
@@ -56,13 +53,12 @@ function do_check(){
|
||||
if(nhttpd_version.search(/error/)!=-1)
|
||||
nhttpd_version = "0.0.0-unknown";
|
||||
if(nhttpd_version < needed_nhttpd_version)
|
||||
sLog_addRow(sLog_body, "red", "WebServer: version: "+nhttpd_version+" version needed: "+needed_nhttpd_version+
|
||||
" <a href='http://www.yjogol.com/yFAQ.htm#diy' target='_blank'><b>[Help]<\/b><\/a>", "fail");
|
||||
sLog_addRow(sLog_body, "red", "WebServer: version: "+nhttpd_version+" version needed: "+needed_nhttpd_version+" ", "fail");
|
||||
else
|
||||
sLog_addRow(sLog_body, "green", "WebServer: version is "+nhttpd_version, "ok");
|
||||
|
||||
{=if-equal:{=ini-get:/var/tuxbox/config/nhttpd.conf;mod_auth.authenticate;false=}~false~~
|
||||
sLog_addRow(sLog_body, "yellow", "WebServer: Authentication is on. "+y_url("Help-Settings-Webserver"), "notice");
|
||||
sLog_addRow(sLog_body, "yellow", "WebServer: Authentication is on. ", "notice");
|
||||
=}
|
||||
{=if-equal:{=ini-get:/var/tuxbox/config/nhttpd.conf;WebsiteMain.port;80=}~80~~
|
||||
sLog_addRow(sLog_body, "yellow",
|
||||
@@ -81,46 +77,46 @@ function do_check(){
|
||||
=}
|
||||
|
||||
/*programs*/
|
||||
{=var-set:fbshot={=if-file-exists:/bin/fbshot~/bin/fbshot~{=if-file-exists:/var/bin/fbshot~/var/bin/fbshot~false=}=}=}
|
||||
{=if-equal:{=var-get:fbshot=}~false~
|
||||
sLog_addRow(sLog_body, "red", "Programs: fbshot is not installed. OSD Screenshot is disabled. "+y_url("Help-BoxControl-OSD_Screenshot"), "failed");
|
||||
{=var-set:fbshot={=find-exec:fbshot=}=}
|
||||
{=if-empty:{=var-get:fbshot=}~
|
||||
sLog_addRow(sLog_body, "red", "Programs: fbshot is not installed. OSD Screenshot is disabled. ", "failed");
|
||||
~
|
||||
sLog_addRow(sLog_body, "green", "Programs: fbshot is installed at: {=var-get:fbshot=}. OSD Screenshot is enabled.", "ok");
|
||||
=}
|
||||
{=var-set:dboxshot={=if-file-exists:/bin/dboxshot~/bin/dboxshot~{=if-file-exists:/var/bin/dboxshot~/var/bin/dboxshot~false=}=}=}
|
||||
{=if-equal:{=var-get:dboxshot=}~false~
|
||||
sLog_addRow(sLog_body, "red", "Programs: dboxshot is not installed. Remote & OSD is disabled. <a href='http://www.yjogol.com/faq-diy' target='_blank'><b>[Download]<\/b><\/a>", "failed");
|
||||
{=var-set:dboxshot={=find-exec:dboxshot=}=}
|
||||
{=if-empty:{=var-get:dboxshot=}~
|
||||
sLog_addRow(sLog_body, "red", "Programs: dboxshot is not installed. Remote & OSD is disabled.", "failed");
|
||||
~
|
||||
sLog_addRow(sLog_body, "green", "Programs: dboxshot is installed at: {=var-get:dboxshot=}. Remote & OSD is enabled.", "ok");
|
||||
=}
|
||||
|
||||
{=if-not-equal:{=global-var-get:boxtype=}~coolstream~
|
||||
{=var-set:fcp={=if-file-exists:/sbin/fcp~/sbin/fcp~{=if-file-exists:/var/bin/fcp~/var/bin/fcp~{=if-file-exists:/bin/fcp~/bin/fcp~false=}=}=}=}
|
||||
{=if-equal:{=var-get:fcp=}~false~
|
||||
sLog_addRow(sLog_body, "red", "Programs: fcp is not installed. Image flashing is disabled. "+y_url("Help-Tools-Image"), "failed");
|
||||
{=var-set:fcp={=find-exec:fcp=}=}
|
||||
{=if-empty:{=var-get:fcp=}~
|
||||
sLog_addRow(sLog_body, "red", "Programs: fcp is not installed. Image flashing is disabled. ", "failed");
|
||||
~
|
||||
sLog_addRow(sLog_body, "green", "Programs: fcp is installed at: {=var-get:fcp=}. Image flashing is enabled.", "ok");
|
||||
=}
|
||||
~=}
|
||||
|
||||
{=var-set:ether-wake={=if-file-exists:/bin/ether-wake~/bin/ether-wake~{=if-file-exists:/var/bin/ether-wake~/var/bin/ether-wake~false=}=}=}
|
||||
{=if-equal:{=var-get:ether-wake=}~false~
|
||||
sLog_addRow(sLog_body, "red", "Programs: ether-wake is not installed. Wake on LAN is disabled. "+y_url("Help-Tools-Wake_on_LAN"), "failed");
|
||||
{=var-set:ether-wake={=find-exec:ether-wake=}=}
|
||||
{=if-empty:{=var-get:ether-wake=}~
|
||||
sLog_addRow(sLog_body, "red", "Programs: ether-wake is not installed. Wake on LAN is disabled. ", "failed");
|
||||
~
|
||||
sLog_addRow(sLog_body, "green", "Programs: ether-wake is installed at: {=var-get:ether-wake=}. Wake on LAN is enabled.", "ok");
|
||||
=}
|
||||
{=if-not-equal:{=global-var-get:boxtype=}~coolstream~
|
||||
/*automount*/
|
||||
{=var-set:automount={=if-file-exists:/sbin/automount~/sbin/automount~{=if-file-exists:/var/bin/automount~/var/bin/automount~false=}=}=}
|
||||
{=if-equal:{=var-get:automount=}~false~
|
||||
sLog_addRow(sLog_body, "red", "Programs: automount is not installed. AutoMount is disabled. "+y_url("Help-Tools-AutoMount"), "failed");
|
||||
{=var-set:automount={=find-exec:automount=}=}
|
||||
{=if-empty:{=var-get:automount=}~
|
||||
sLog_addRow(sLog_body, "red", "Programs: automount is not installed. AutoMount is disabled. ", "failed");
|
||||
~
|
||||
sLog_addRow(sLog_body, "green", "Programs: automount is installed at: {=var-get:automount=}. AutoMount is enabled.", "ok");
|
||||
=}
|
||||
{=if-not-equal:{=global-var-get:boxtype=}~coolstream~
|
||||
/* udp */
|
||||
{=var-set:udpstreamts={=if-file-exists:/sbin/udpstreamts~/sbin/udpstreamts~{=if-file-exists:/var/bin/udpstreamts~/var/bin/udpstreamts~false=}=}=}
|
||||
{=if-equal:{=var-get:udpstreamts=}~false~
|
||||
sLog_addRow(sLog_body, "red", "Programs: udpstreamts is not installed. udp-streaming is disabled. "+y_url("Help-Live_Timer-UDP_Streaming"), "failed");
|
||||
{=var-set:udpstreamts={=find-exec:udpstreamts=}=}
|
||||
{=if-empty:{=var-get:udpstreamts=}~
|
||||
sLog_addRow(sLog_body, "red", "Programs: udpstreamts is not installed. udp-streaming is disabled. ", "failed");
|
||||
~
|
||||
sLog_addRow(sLog_body, "green", "Programs: udpstreamts is installed at: {=var-get:udpstreamts=}. udp-streaming is enabled.", "ok");
|
||||
=}
|
||||
|
@@ -79,9 +79,7 @@ function doUpload()
|
||||
|
||||
<script language="JavaScript" type="text/javascript" >
|
||||
//<![CDATA[
|
||||
var agt=navigator.userAgent.toLowerCase();
|
||||
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
|
||||
if(is_ie)
|
||||
if(isIE)
|
||||
document.f.appendx.checked = true;
|
||||
window.document.f.cmd.focus();
|
||||
//]]>
|
||||
|
@@ -21,7 +21,7 @@ function do_image_upload_ready()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
{=var-set:fcp={=if-file-exists:/sbin/fcp~true~{=if-file-exists:/var/bin/fcp~true~{=if-file-exists:/bin/fcp~true~false=}=}=}=}
|
||||
{=var-set:fcp={=find-exec:fcp=}=}
|
||||
{=var-set:wait_text=Image wird hochgeladen (upload image).=}{=include-block:Y_Blocks.txt;snip_wait=}
|
||||
<div id="wait_flash" class="ydiagfree" style="left: 100px; position: absolute; top: 100px; display: none;">
|
||||
<div class="y_wait_box_visible">
|
||||
@@ -74,7 +74,9 @@ function do_image_upload_ready()
|
||||
{=var-set:help_url=Help-Tools-Image=}{=var-set:menu=Image flashen=}{=include-block:Y_Blocks.txt;work_menu=}</div></div>
|
||||
<div class="work_box_body">
|
||||
<b><font size="2">Partition mtd {=mtd=}</font><br/>{=mtd_text=}</b>
|
||||
{=if-equal:{=var-get:fcp=}~true~
|
||||
{=if-empty:{=var-get:fcp=}~
|
||||
<h2><br/><br/><br/><b><font color="#FF0000">fcp ist nicht installiert!</font></b></h2>
|
||||
~
|
||||
<form method="post" name="f" id="f" enctype="multipart/form-data" action="/control/exec?Y_Tools&image_upload" target="out">
|
||||
<p>
|
||||
<input type="file" name="file" size="40"/><br/>
|
||||
@@ -82,8 +84,6 @@ function do_image_upload_ready()
|
||||
<button type="button" ytype="flash" title="upload and flash" name="su" onclick="do_submit()">Image flashen</button><br/>
|
||||
</p>
|
||||
</form>
|
||||
~
|
||||
<h2><br/><br/><br/><b><font color="#FF0000">fcp ist nicht installiert!</font></b></h2>
|
||||
=}
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -14,8 +14,8 @@ function init(){
|
||||
</script>
|
||||
</head>
|
||||
{=var-set:management={=if-equal:{=func:get_request_data client_addr=}~{=ini-get:/var/tuxbox/config/Y-Web.conf;management_ip;{=func:get_request_data client_addr=}=}~1~=}{=if-equal:{=func:get_request_data client_addr=}~{=ini-get:/var/tuxbox/config/Y-Web.conf;management_ip2=}~1~=}=}
|
||||
{=var-set:automount={=if-file-exists:/sbin/automount~true~{=if-file-exists:/var/bin/automount~true~=}=}=}
|
||||
{=var-set:ether-wake={=if-equal:{=global-var-get:boxtype=}~coolstream~{=if-file-exists:/bin/ether-wake~/bin/ether-wake~{=if-file-exists:/var/bin/ether-wake~/var/bin/ether-wake~=}=}~{=if-file-exists:/bin/ether-wake~/bin/ether-wake~{=if-file-exists:/var/bin/ether-wake~/var/bin/ether-wake~=}=}=}=}
|
||||
{=var-set:automount={=find-exec:automount=}=}
|
||||
{=var-set:ether-wake={=find-exec:ether-wake=}=}
|
||||
<body onload="init()">
|
||||
<div class="y_menu_sec_box">
|
||||
<div class="y_menu_sec_box_head"><h2>{=L:main.tools=}</h2></div>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
{=var-set:fbshot={=if-file-exists:/bin/fbshot~true~{=if-file-exists:/var/bin/fbshot~true~false=}=}=}
|
||||
{=var-set:fbshot={=find-exec:fbshot=}=}
|
||||
|
||||
{=include-block:Y_Blocks.txt;head=}
|
||||
<script type="text/javascript" src="/Y_Baselib.js"></script>
|
||||
@@ -43,7 +43,7 @@ function do_snapshot() {
|
||||
filename = id("filename").value;
|
||||
}
|
||||
|
||||
if ({=var-get:fbshot=} == true && enableVideo == 0)
|
||||
if ("{=var-get:fbshot=}" != "" && enableVideo == 0)
|
||||
dbox_exec_tools("fbshot fb /tmp/"+filename+".png");
|
||||
else
|
||||
loadSyncURL("/control/screenshot?name="+filename+"&osd="+enableOSD+"&video="+enableVideo);
|
||||
|
@@ -109,8 +109,6 @@ function processReqChange()
|
||||
}
|
||||
else if (document.f.planer[1].checked == true)
|
||||
{
|
||||
var agt=navigator.userAgent.toLowerCase();
|
||||
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
|
||||
var xml = g_req.responseXML;
|
||||
var recProg_NodeList = xml.getElementsByTagName('item');
|
||||
for(i=0;i<recProg_NodeList.length;i++)
|
||||
@@ -119,7 +117,7 @@ function processReqChange()
|
||||
|
||||
var progName = getXMLNodeItemValue(recProg_Node, 'title');
|
||||
var description = getXMLNodeItemValue(recProg_Node, 'description');
|
||||
//FF3?Probs if(is_ie)
|
||||
//FF3?Probs if(isIE)
|
||||
{
|
||||
var sDate = getXMLNodeItemValue(recProg_Node, 'dc:date');
|
||||
var sender = getXMLNodeItemValue(recProg_Node, 'dc:subject');
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/* VLC abstraction by yjogol@online.de
|
||||
$Date$
|
||||
$Revision$
|
||||
/* VLC abstraction by yjogol
|
||||
$Date: $
|
||||
$Revision: $
|
||||
*/
|
||||
/*ie1=ActiveC, moz1=Mozilla<0.8.5.1, moz2>= 0.8.5.1*/
|
||||
var CyVLC = function(_id, masterid, width, height) {
|
||||
@@ -29,14 +29,14 @@ CyVLC.prototype = {
|
||||
this.c_masterid = masterid;
|
||||
this.c_width = width;
|
||||
this.c_height = height;
|
||||
if(!is_ie) {
|
||||
if(!isIE) {
|
||||
this.version_string = this._get_version();
|
||||
this._generate_sub_versions();
|
||||
this._determine_plugin_generation();
|
||||
}
|
||||
this.insert_control();
|
||||
this.vlc = id(_id);
|
||||
if(is_ie) {
|
||||
if(isIE) {
|
||||
this.version_string = this._get_version();
|
||||
this._generate_sub_versions();
|
||||
this._determine_plugin_generation();
|
||||
@@ -44,55 +44,68 @@ CyVLC.prototype = {
|
||||
this.set_resolution(this.c_width, this.c_height);
|
||||
},
|
||||
_get_version : function() {
|
||||
if(is_ie)
|
||||
if(isIE)
|
||||
{
|
||||
var vstr = this.vlc.VersionInfo;
|
||||
var words = vstr.split(" ");
|
||||
return words[0];
|
||||
}
|
||||
else
|
||||
if (navigator.plugins && (navigator.plugins.length > 0)) {
|
||||
var name = "VLC";
|
||||
for(var i=0;i<navigator.plugins.length;++i)
|
||||
if (navigator.plugins[i].name.indexOf(name) != -1)
|
||||
var plug = navigator.plugins[navigator.plugins[i].name];
|
||||
|
||||
if(typeof plug != 'undefined') {
|
||||
var Suche = /(PLUGIN)/gi;
|
||||
var Ergebnis = Suche.test(plug.description);
|
||||
if (Ergebnis == true){
|
||||
var ex = /^.*[pP]lugin [\"]*([^ \"]*)[\"]*.*$/;
|
||||
var ve = ex.exec(plug.description);
|
||||
}else{
|
||||
var ex = /^.*[vV]ersion [\"]*([^ \"]*)[\"]*.*$/;
|
||||
var ve = ex.exec(plug.description);
|
||||
else if (navigator.plugins && (navigator.plugins.length > 0)) {
|
||||
var numPlugins = navigator.plugins.length;
|
||||
var plug_version = "0.0.0";
|
||||
for(var i = 0; i < numPlugins; i++) {
|
||||
var plugin = navigator.plugins[i];
|
||||
var numTypes = plugin.length;
|
||||
for (var j = 0; j < numTypes; j++)
|
||||
{
|
||||
var mimetype = plugin[j];
|
||||
if (mimetype) {
|
||||
if (mimetype.type.indexOf("application/x-vlc-plugin") != -1) {
|
||||
if(plugin.version != 0){
|
||||
plug_version = plugin.version;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
var Suche = /(PLUGIN)/gi;
|
||||
var Ergebnis = Suche.test(plugin.description);
|
||||
if (Ergebnis == true){
|
||||
var ex = /^.*[pP]lugin [\"]*([^ \"]*)[\"]*.*$/;
|
||||
var ve = ex.exec(plugin.description);
|
||||
}else{
|
||||
var ex = /^.*[vV]ersion [\"]*([^ \"]*)[\"]*.*$/;
|
||||
var ve = ex.exec(plugin.description);
|
||||
}
|
||||
var Suche = /([0-9])/g;
|
||||
var Ergebnis = Suche.test(ve);
|
||||
if (Ergebnis == true)
|
||||
plug_version = ve[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var Suche = /([0-9])/g;
|
||||
var Ergebnis = Suche.test(ve);
|
||||
if (Ergebnis == true)
|
||||
return ve[1];
|
||||
else
|
||||
return "0.0.0";
|
||||
}
|
||||
else
|
||||
return "0.0.0";
|
||||
return plug_version;
|
||||
}
|
||||
else
|
||||
return "0.0.0";
|
||||
},
|
||||
_generate_sub_versions : function() {
|
||||
if(this.version_string == "")
|
||||
return
|
||||
if(this.version_string === "")
|
||||
return;
|
||||
var ex = /([^\.]*)[\.]*([^\.]*)[\.]*([^\.-]*)[\.-]*([^\.]*).*$/;
|
||||
var ve = ex.exec(this.version_string);
|
||||
if(ve.length >1) this.version_level1 = ve[1];
|
||||
if(ve.length >2) this.version_level2 = ve[2];
|
||||
if(ve.length >3 && ve[3] != "") this.version_level3 = ve[3];
|
||||
if(ve.length >4 && ve[4] != "") this.version_level4 = ve[4];
|
||||
if(ve.length >3 && ve[3] !== "") this.version_level3 = ve[3];
|
||||
if(ve.length >4 && ve[4] !== "") this.version_level4 = ve[4];
|
||||
},
|
||||
_determine_plugin_generation : function() {
|
||||
if(is_ie)
|
||||
if(isIE)
|
||||
this.plugin = "ie1";
|
||||
else
|
||||
if(this.version_level1 <= "0" && this.version_level2 <= "8" && this.version_level3 <= "5")
|
||||
if(this.version_level1 <= 0 && this.version_level2 <= 8 && this.version_level3 <= 5)
|
||||
this.plugin = "moz1";
|
||||
else
|
||||
this.plugin = "moz2";
|
||||
@@ -230,7 +243,7 @@ CyVLC.prototype = {
|
||||
insert_control : function()
|
||||
{
|
||||
var vlc_control_html = "";
|
||||
if(is_ie) {
|
||||
if(isIE) {
|
||||
vlc_control_html =
|
||||
"<object classid=\"clsid:E23FE9C6-778E-49D4-B537-38FCDE4887D8\" " +
|
||||
/* "<object classid=\"clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921\" " +*/
|
||||
|
@@ -1,4 +1,4 @@
|
||||
version=2.9.0.12
|
||||
date=04.03.2015
|
||||
version=2.9.0.23
|
||||
date=01.05.2015
|
||||
type=Release
|
||||
info=Port CST
|
||||
|
@@ -208,9 +208,9 @@ start-block~neutrino_record_save_settings
|
||||
{=ini-set:/var/tuxbox/config/neutrino.conf;auto_delete;{=auto_delete=}~cache=}
|
||||
{=ini-set:/var/tuxbox/config/neutrino.conf;temp_timeshift;{=temp_timeshift=}~cache=}
|
||||
{=ini-set:/var/tuxbox/config/neutrino.conf;recording_audio_pids_default;{=recording_audio_pids_default=}~save=}
|
||||
{=ini-set:/var/tuxbox/config/timerd.conf;EXTRA_TIME_START;{=EXTRA_TIME_START=}=}
|
||||
{=ini-set:/var/tuxbox/config/timerd.conf;EXTRA_TIME_END;{=EXTRA_TIME_END=}=}
|
||||
{=ini-set:/var/tuxbox/config/timerd.conf;ZAPTO_EXTRA_TIME_START;{=ZAPTO_EXTRA_TIME_START=}=}
|
||||
{=ini-set:/var/tuxbox/config/timerd.conf;EXTRA_TIME_START;{=EXTRA_TIME_START=}~open=}
|
||||
{=ini-set:/var/tuxbox/config/timerd.conf;EXTRA_TIME_END;{=EXTRA_TIME_END=}~cache=}
|
||||
{=ini-set:/var/tuxbox/config/timerd.conf;ZAPTO_EXTRA_TIME_START;{=ZAPTO_EXTRA_TIME_START=}~save=}
|
||||
end-block~neutrino_record_save_settings
|
||||
|
||||
|
||||
|
@@ -1,13 +0,0 @@
|
||||
From Johannes Golombek yjogol@online.de:
|
||||
Published under GPL v2
|
||||
- audiobar.png
|
||||
- blank.gif
|
||||
|
||||
From old (before yWeb):
|
||||
Published under GPL v2
|
||||
- elist.png
|
||||
- streaminfo.png
|
||||
|
||||
All others are from Mark James (www.famfamfam.com)
|
||||
Published under Creative Common License 2.5
|
||||
(http://creativecommons.org/licenses/by/2.5/)
|
@@ -1,4 +1,4 @@
|
||||
installdir = $(DATADIR)/neutrino/httpd/images
|
||||
installdir = $(PRIVATE_HTTPDDIR)/images
|
||||
|
||||
install_DATA = accept.png \
|
||||
alert.gif \
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 807 B After Width: | Height: | Size: 865 B |
Binary file not shown.
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 34 KiB |
@@ -3,9 +3,9 @@
|
||||
# $Date$
|
||||
# $Revision$
|
||||
=========== GENERAL / GLOBAL
|
||||
global.no_iframes=Dein Browser unterstützt keine IFrames.
|
||||
clear=löschen
|
||||
submit=Ausführen
|
||||
global.no_iframes=Dein Browser unterstützt keine IFrames.
|
||||
clear=löschen
|
||||
submit=Ausführen
|
||||
action=Aktion
|
||||
user=Benutzer
|
||||
password=Passwort
|
||||
@@ -20,7 +20,7 @@ record=Aufnehmen
|
||||
zap=Umschalten
|
||||
lookup=Nachschlagen
|
||||
save_values_desc=Senden und Speichern der Werte
|
||||
save_values=Werte werden übernommen ...
|
||||
save_values=Werte werden übernommen ...
|
||||
administration=Administration
|
||||
normal=Normal
|
||||
management=Management
|
||||
@@ -41,7 +41,7 @@ off=Aus
|
||||
download=Herunterladen
|
||||
back=Zurück
|
||||
date=Datum
|
||||
from=Von
|
||||
from=von
|
||||
to=bis
|
||||
program=Sendung
|
||||
others=Sonstiges
|
||||
@@ -49,7 +49,7 @@ description=Beschreibung
|
||||
color=Farbe
|
||||
tag=Bezeichnung
|
||||
empty=leer
|
||||
check=Prüfen
|
||||
check=Prüfen
|
||||
help=Hilfe
|
||||
attention=Achtung!
|
||||
directory=Verzeichnis
|
||||
@@ -67,11 +67,11 @@ main.live_desc=LiveView, Aufnahmeliste, EPG
|
||||
main.tools=Werkzeuge
|
||||
main.tools_desc=Mounts, WOL, Experten Werkzeuge, Flashen
|
||||
main.settings=Einstellungen
|
||||
main.settings_desc=Einstellungen für die Box, Webserver, ...
|
||||
main.settings_desc=Einstellungen für die Box, Webserver, ...
|
||||
main.extensions=Erweiterungen
|
||||
main.extensions_desc=Installierte Erweiterungen und Verwaltung
|
||||
main.info=Info
|
||||
main.info_desc=Information über das yWeb, Version
|
||||
main.info_desc=Information über das yWeb, Version
|
||||
main.live_tv_desc=LiveTV
|
||||
main.live_tv_popup_desc=LiveTV Popup
|
||||
main.remote_full_desc=Fernbedinung & OSD Vollbild
|
||||
@@ -79,9 +79,9 @@ main.stream_to_vlc_client_desc=Live TV direkt im VLC Client
|
||||
main.version=Version
|
||||
|
||||
#========= Boxcontrol Menue
|
||||
bc.menue.bouquets_desc=Sender auswählen
|
||||
bc.menue.bouquets_desc=Sender auswählen
|
||||
bc.menue.bouquets=Sender
|
||||
bc.menue.control_desc=Box Funktionen (Neustart, Aufnahmemodus,...)
|
||||
bc.menue.control_desc=Box Funktionen (Neustart, Aufnahmemodus, ...)
|
||||
bc.menue.control=Steuerung
|
||||
bc.menue.messages_desc=Nachricht an die Box senden
|
||||
bc.menue.messages=Nachrichten
|
||||
@@ -93,15 +93,15 @@ bc.menue.lcd_screenshot_desc_ni=lcshot nicht installiert in /bin oder /var/bin
|
||||
bc.menue.screenshot=Screenshot
|
||||
bc.menue.screenshot_desc=Screenshot des OSDs und/oder des TV-Bildes erstellen
|
||||
|
||||
bc.menue.decrease_volume=Lautstärke verringern
|
||||
bc.menue.increase_volume=Lautstärke erhöhen
|
||||
bc.menue.mute_volume=Lautstärke an / aus
|
||||
bc.menue.decrease_volume=Lautstärke verringern
|
||||
bc.menue.increase_volume=Lautstärke erhöhen
|
||||
bc.menue.mute_volume=Lautstärke an / aus
|
||||
bc.menue.switch_to_tv=Zum TV umschalten
|
||||
bc.menue.switch_to_radio=Zum Radio umschalten
|
||||
bc.menue.webinf_slavebox=Webinterface der SlaveBox
|
||||
bc.menue.volumen_display=Lautstärke Anzeige
|
||||
bc.menue.volumen_display=Lautstärke Anzeige
|
||||
|
||||
bc.menue.signal=Signalstärke
|
||||
bc.menue.signal=Signalstärke
|
||||
|
||||
========= Boxcontrol
|
||||
bc.control.freemem=FreeMem
|
||||
@@ -129,7 +129,7 @@ bc.msg.send_message=Nachricht senden
|
||||
|
||||
======== Boxcontrol - Screenshot
|
||||
bc.screenshot.create=Schnappschuss
|
||||
bc.screenshot.delete=Schnappschuss löschen
|
||||
bc.screenshot.delete=Schnappschuss löschen
|
||||
bc.screenshot.zoom=Schnappschuss zoomen
|
||||
bc.screenshot.wait_text=Schnappschuss wird erstellt
|
||||
bc.screenshot.checkenable=OSD und/oder TV muss aktiviert sein!
|
||||
@@ -146,7 +146,7 @@ ext.type=Typ
|
||||
ext.extension=Erweiterung
|
||||
ext.tag=Tag
|
||||
ext.version=Version
|
||||
ext.size=Größe/k
|
||||
ext.size=Größe/k
|
||||
ext.uninstall=Deinstallation
|
||||
ext.info=Info
|
||||
ext.free=Frei
|
||||
@@ -170,8 +170,8 @@ bou.rename_bouquet=Bouquet umbenennen
|
||||
bou.move_up=Nach oben
|
||||
bou.move_down=Nach unten
|
||||
bou.remove=Entfernen
|
||||
bou.delete=Löschen
|
||||
bou.add=Hinzufügen
|
||||
bou.delete=Löschen
|
||||
bou.add=Hinzufügen
|
||||
bou.rename=Umbenennen
|
||||
bou.bouqets_saved=Bouquet-Liste gespeichert
|
||||
bou.delete1=Bouquet
|
||||
@@ -181,12 +181,12 @@ bou.no_bouquet_name=Es wurde kein Bouquet-Name angegeben
|
||||
========EPG
|
||||
epg.get_epg=EPG holen ...
|
||||
epg.epg_plus=EPG Plus
|
||||
epg.select_bouquet=Bouquet auswählen - Kanäle werden aktualisiert
|
||||
epg.select_bouquet=Bouquet auswählen - Kanäle werden aktualisiert
|
||||
epg.hover_for_details=Für Details: Maus über die entsprechende Sendung bewegen.
|
||||
epg.refresh=EPG Daten aktualisieren
|
||||
epg.past_hours=Stunden zurück
|
||||
epg.past_hours=Stunden zurück
|
||||
epg.next_hours=Stunden vor
|
||||
epg.set_timer=Timer für Aufnahme gesetzt
|
||||
epg.set_timer=Timer für Aufnahme gesetzt
|
||||
epg.zap_to=Umschalt-Timer gesetzt
|
||||
|
||||
========EPG Streaminfo
|
||||
@@ -267,8 +267,8 @@ set.rec.recordtime=Aufnahmezeit in Stunden
|
||||
set.rec.timeshift_desc=Timeshift
|
||||
set.rec.timeshift.pause=Start mit Pause-Taste
|
||||
set.rec.timeshift.auto_record=Autom. Aufnahme (in Sek, 0=deaktiviert)
|
||||
set.rec.timeshift.auto_delete=Automatisches Löschen
|
||||
set.rec.timeshift.tmp_timeshift=Temporäres timeshift
|
||||
set.rec.timeshift.auto_delete=Automatisches Löschen
|
||||
set.rec.timeshift.tmp_timeshift=Temporäres timeshift
|
||||
|
||||
========Neutrino Settings - Movieplayer
|
||||
set.mp.sources=Quellen
|
||||
@@ -312,6 +312,7 @@ set.nhttpd.alternate_web_folder=Alternativer Web-Ordner
|
||||
set.nhttpd.hosted_folder=Eingebundenes Verzeichnis
|
||||
set.nhttpd.allowed_file_extensions=Erlaubte Dateiendungen / MIME
|
||||
set.nhttpd.allow_all_file_extensions=Alle Dateiendungen erlauben
|
||||
set.nhttpd.display_logos=Logos anzeigen
|
||||
set.nhttpd.url_of_logos_desc=URL bzw. Verzeichnis der Logos eingeben
|
||||
set.nhttpd.url_of_logos=URL bzw. Verzeichnis der Logos
|
||||
set.nhttpd.server=Server
|
||||
@@ -319,7 +320,7 @@ set.nhttpd.ips_without_keep_alive_desc=(z.B. JtG Server, Mit Kommas trennen)
|
||||
set.nhttpd.ips_without_keep_alive=IPs mit No keep-alive
|
||||
set.nhttpd.cache=Cache
|
||||
set.nhttpd.cache_info=Cache Informationen
|
||||
set.nhttpd.clear_cache=Cache löschen
|
||||
set.nhttpd.clear_cache=Cache löschen
|
||||
set.nhttpd.server_configuration=Server Konfiguration
|
||||
set.nhttpd.check_password=Passwort muss mind. 4 Zeichen haben
|
||||
set.nhttpd.check_port=Port muss angegeben werden
|
||||
@@ -368,7 +369,7 @@ set.timer.header=Timer Einstellungen
|
||||
set.timer.username=Benutzername
|
||||
set.timer.password=Passwort
|
||||
set.timer.klack.url_desc=("&" wird beim Speichern zu ";" konvertiert)
|
||||
set.timer.klack.url=Persönliche RSS TV-Planer URL
|
||||
set.timer.klack.url=Persönliche RSS TV-Planer URL
|
||||
set.timer.klack.security_code_desc=Klack Sicherheits Code
|
||||
set.timer.klack.security_code=Sicherheits Code
|
||||
set.timer.channel_name_replacelist=Sendernamen-Ersetzungsliste
|
||||
@@ -408,7 +409,7 @@ tools.automount=AutoMounts
|
||||
tools.mounts_desc=File mounts organisieren
|
||||
tools.mounts=Mounts
|
||||
tools.wake_on_lan=Wake on LAN
|
||||
tools.check_install=Installation prüfen
|
||||
tools.check_install=Installation prüfen
|
||||
tools.expert=Expert
|
||||
tools.image_desc=Image sichern oder flashen
|
||||
tools.image=Image
|
||||
@@ -417,8 +418,8 @@ tools.not_installed=nicht installiert
|
||||
tools.cmd_shell.output_desc=fortlaufende Ausgabe (nur IE - wg. scrollen)
|
||||
tools.path=Verzeichnis
|
||||
tools.command=Kommando
|
||||
tools.cmd.enter_command=Auszuführendes Kommando eingeben
|
||||
tools.cmd.execute_command=Kommando ausführen
|
||||
tools.cmd.enter_command=Auszuführendes Kommando eingeben
|
||||
tools.cmd.execute_command=Kommando ausführen
|
||||
tools.boot_logo=Boot Logo
|
||||
tools.filemgr_desc=Dateien und Verzeichnisse organisieren
|
||||
tools.filemgr=Dateimanager
|
||||
@@ -441,17 +442,17 @@ live.timer_sync=Timer Sync
|
||||
live.get_stream_info=Streaming-Informationen<br/>werden ermittelt.
|
||||
live.getting_bouquets=Hole Bouquets ...
|
||||
live.getting_channels=Hole Sender ...
|
||||
live.select_resolution=Auflösung auswählen
|
||||
live.select_resolution=Auflösung auswählen
|
||||
live.change_channel=Sender wechseln
|
||||
live.view_epg=EPG für aktuellen Sender anzeigen
|
||||
live.view_epg=EPG für aktuellen Sender anzeigen
|
||||
live.reload=Bouquets und Sender neu laden
|
||||
live.getting_subchannels=Hole Unterkanäle ...
|
||||
live.getting_subchannels=Hole Unterkanäle ...
|
||||
live.play_or_pause=Abspielen oder Pause
|
||||
live.stop=Stoppen
|
||||
live.mute=Stummschaltung an / aus
|
||||
live.lower_volume=leiser
|
||||
live.higher_volume=lauter
|
||||
live.fullscreen=Ganzer Bildschirm (auch mit Doppelklick) mit ESC zurück
|
||||
live.fullscreen=Ganzer Bildschirm (auch mit Doppelklick) mit ESC zurück
|
||||
live.lock_unlock=Box sperren / entsperren
|
||||
live.toggle_udp=UDP Streaming an/aus
|
||||
live.settings=LiveView Einstellungen
|
||||
@@ -459,9 +460,9 @@ live.snapshot=Schnappschuss erstellen
|
||||
live.record=Aufnahmemodus
|
||||
live.transcode=Transkodiermodus
|
||||
live.build_vlc=... erstelle Live ...
|
||||
live.select_bouquet=Bouquet auswählen - Sender werden aktualisiert
|
||||
live.select_bouquet=Bouquet auswählen - Sender werden aktualisiert
|
||||
live.select_channel=Sender wechseln - nutze zap
|
||||
live.live_popup_msg=Während des LiveTVs keine Sender wechseln!
|
||||
live.live_popup_msg=Während des LiveTVs keine Sender wechseln!
|
||||
live.unlock=FB freigeben
|
||||
|
||||
=========== LIVE Record
|
||||
@@ -526,8 +527,8 @@ live.timer-sync.timer_source=Timer Quelle
|
||||
live.timer-sync.rec_dir=Aufnahmeverzeichnis
|
||||
live.timer-sync.settings=Einstellungen
|
||||
live.timer-sync.debugging=Debugging
|
||||
live.timer-sync.get_selected=Hole gewählte
|
||||
live.timer-sync.clear_all=Lösche alle
|
||||
live.timer-sync.get_selected=Hole gewählte
|
||||
live.timer-sync.clear_all=Lösche alle
|
||||
live.timer-sync.timer_preview=Timer Vorschauliste
|
||||
live.timer-sync.start_time=Startzeit
|
||||
live.timer-sync.end_time=Endezeit
|
||||
@@ -535,15 +536,15 @@ live.timer-sync.channel=Sender
|
||||
live.timer-sync.programm=Sendung
|
||||
live.timer-sync.source=Quelle
|
||||
live.timer-sync.set_timer=Setze Timer
|
||||
live.timer-sync.clear_log=Lösche Log
|
||||
live.timer-sync.clear_log=Lösche Log
|
||||
live.timer-sync.log=Log
|
||||
live.timer-sync.action=Aktion
|
||||
live.timer-sync.status=Status
|
||||
|
||||
=========INFO
|
||||
info.help=Hilfe
|
||||
info.About=Über
|
||||
info.check_for_updates=Auf Updates prüfen
|
||||
info.About=über
|
||||
info.check_for_updates=Auf Updates prüfen
|
||||
info.your_version=Deine Version
|
||||
info.actual_version=Aktuelle Version
|
||||
|
||||
@@ -574,7 +575,7 @@ rc.key_sleep=Sleep
|
||||
rc.key_audio=Audio
|
||||
rc.key_help=Help
|
||||
rc.key_red=Rot
|
||||
rc.key_green=Grün
|
||||
rc.key_green=Grün
|
||||
rc.key_yellow=Gelb
|
||||
rc.key_blue=Blau
|
||||
rc.key_epg=EPG
|
||||
@@ -584,7 +585,7 @@ rc.key_up=Hoch
|
||||
rc.key_down=Runter
|
||||
rc.key_left=Links
|
||||
rc.key_right=Rechts
|
||||
rc.key_setup=Menü
|
||||
rc.key_setup=Menü
|
||||
rc.key_home=Exit
|
||||
rc.key_sat=Sat
|
||||
rc.key_www=
|
||||
|
@@ -315,6 +315,7 @@ set.nhttpd.alternate_web_folder=Alternate Web-Folder
|
||||
set.nhttpd.hosted_folder=Mounted directory
|
||||
set.nhttpd.allowed_file_extensions=Allowed File Extensions / MIME
|
||||
set.nhttpd.allow_all_file_extensions=Allow all File Extensions
|
||||
set.nhttpd.display_logos=Display Logos
|
||||
set.nhttpd.url_of_logos_desc=Enter URL or directory of Logos
|
||||
set.nhttpd.url_of_logos=URL or directory of Logos
|
||||
set.nhttpd.server=Server
|
||||
|
@@ -1,4 +1,4 @@
|
||||
installdir = $(DATADIR)/neutrino/httpd/languages
|
||||
installdir = $(PRIVATE_HTTPDDIR)/languages
|
||||
|
||||
install_DATA = Czech Deutsch English Portuguese Slovak
|
||||
install_DATA = Czech Deutsch English Polski Portuguese Slovak
|
||||
|
||||
|
601
src/nhttpd/web/languages/Polski
Normal file
601
src/nhttpd/web/languages/Polski
Normal file
@@ -0,0 +1,601 @@
|
||||
# yWeb language file (Polish/Polski) by jaro44
|
||||
# language version: 1.1
|
||||
# $Date: 2015-03-05 11:45:14 +100 (Czw, 05 Marzez 2015) $
|
||||
# $Revision$
|
||||
# ========= Start / Ustawienia ogólne
|
||||
global.no_iframes=Twoja przeglądarka nie obsługuje I-Frame.
|
||||
clear=Wyczyść
|
||||
submit=Uruchom
|
||||
action=Działanie
|
||||
user=Użytkownik
|
||||
password=Hasło
|
||||
language=Język
|
||||
general=Ogólne
|
||||
logos=Logo
|
||||
url=URL
|
||||
server=Serwer
|
||||
refreshing=Aktualizacja ...
|
||||
refresh=Odśwież
|
||||
record=Nagrywanie
|
||||
zap=Przełącznik
|
||||
lookup=wyszukiwanie
|
||||
save_values_desc=Wyślij przechowywane wartości
|
||||
save_values=zapisywanie ...
|
||||
save=Zapisz
|
||||
save_all=Zapisz wszystko
|
||||
administration=Administracja
|
||||
normal=Normalny
|
||||
management=Zarządzanie
|
||||
uninstaller=Odinstaluj
|
||||
send=Wyślij
|
||||
cancel=Anuluj
|
||||
apply=Zastosuj zmiany
|
||||
apply_desc=Czyta plik konfiguracyjny nowego neutrino
|
||||
answer=Odpowiedź
|
||||
reboot=Restart
|
||||
shutdown=Wyłączenie
|
||||
status=Status
|
||||
restart=Restart
|
||||
on=Wł.
|
||||
off=Wył.
|
||||
download=Pobierz
|
||||
back=Powrót do strony głównej
|
||||
date=Data
|
||||
from=z
|
||||
to=do
|
||||
program=Program
|
||||
others=Inne
|
||||
description=Opis
|
||||
color=Kolor
|
||||
tag=Nazwa
|
||||
empty=Pusty
|
||||
check=Sprawdź
|
||||
help=Pomoc
|
||||
attention=Uwaga!
|
||||
directory=katalog
|
||||
filename=Nazwa pliku
|
||||
restriced_by_management_ip=Ograniczony dostęp
|
||||
automatic=Automatyczne
|
||||
show=Pokaż
|
||||
hide=Ukryj
|
||||
|
||||
# ======== Menu główne
|
||||
main.boxcontrol=Kontrola urządzenia
|
||||
main.boxcontrol_desc=Kontrola urządzenia i bukietów
|
||||
main.live=Na żywo
|
||||
main.live_desc=Podgląd na żywo, Nagrywanie Lista, EPG
|
||||
main.tools=Narzędzia
|
||||
main.tools_desc=Połączenie, WOL, zaawansowane narzędzia
|
||||
main.settings=Ustawienia
|
||||
main.settings_desc=Ustawienia, Przeglądarka, urządzenia, akcesoria ...
|
||||
main.extensions=Rozszerzenia
|
||||
main.extensions_desc=Zainstalowane rozszerzenia i zarządzanie
|
||||
main.info=Informacje
|
||||
main.info_desc=Informacje yWeb, Aktualizacje
|
||||
main.live_tv_desc=TV Live
|
||||
main.live_tv_popup_desc=Okno Live TV
|
||||
main.remote_full_desc=Pilot zdalnego sterowania i OSD Pełny ekran
|
||||
main.stream_to_vlc_client_desc=Stream do klienta VLC
|
||||
main.version=wersja
|
||||
|
||||
# ========= Okno Menu sterowania
|
||||
bc.menue.bouquets_desc=Bukiety
|
||||
bc.menue.bouquets=Ulubione
|
||||
bc.menue.control_desc=kontrola funkcji urządzenia (Restart, Pilot, ...)
|
||||
bc.menue.control=Sterowanie
|
||||
bc.menue.messages_desc=Wysyłanie wiadomości do urządzenia
|
||||
bc.menue.messages=Wiadomości
|
||||
bc.menue.remote_desc=Pilot zdalnego sterowania
|
||||
bc.menue.remote=Pilot
|
||||
bc.menue.lcd_screenshot_desc=Tworzenie zrzutu ekranu LCD
|
||||
bc.menue.lcd_screenshot=Zrzut ekranu LCD
|
||||
bc.menue.lcd_screenshot_desc_ni=lcshot nie jest zainstalowane w katalogu /bin lub /var/bin
|
||||
bc.menue.screenshot=Zrzut ekranu
|
||||
bc.menue.screenshot_desc=Zrzut ekranu OSD i/lub obrazu telewizyjnego
|
||||
|
||||
bc.menue.decrease_volume=Ciszej
|
||||
bc.menue.increase_volume=Głośniej
|
||||
bc.menue.mute_volume=Wyłączenie dźwięku
|
||||
bc.menue.switch_to_tv=Przełącz na TV
|
||||
bc.menue.switch_to_radio=Przełącz na Radio
|
||||
bc.menue.webinf_slavebox=Interfejs WWW dla urządzenia slave
|
||||
bc.menue.volumen_display=Głośność
|
||||
|
||||
bc.menue.signal=Siła sygnału
|
||||
|
||||
# ========= Sterowanie
|
||||
bc.control.freemem=Dostępna pamięć
|
||||
bc.control.lock=Zablokowany
|
||||
bc.control.unlock=Odblokowany
|
||||
bc.control.standby_mode=Tryb czuwania
|
||||
bc.control.recording_mode=Tryb nagrywania
|
||||
bc.control.box=Tuner
|
||||
bc.control.remote=Pilot
|
||||
bc.control.playback=Tryb odtwarzania
|
||||
bc.control.epg_sectiond=Sekcja EPG
|
||||
bc.control.live_lock=Zablokowane
|
||||
bc.control.reboot.ask=Ponownie uruchomić tuner?
|
||||
bc.control.reboot=Restart
|
||||
bc.control.shutdown.ask=Wyłączyć urządzenie?
|
||||
bc.control.shutdown=Wyłączony
|
||||
bc.control.status=Stan
|
||||
bc.control.restart=Restart
|
||||
|
||||
# ========= Sterowanie - Raport
|
||||
bc.msg.message_to_screen_desc=Wpisz wiadomość, aby wyświetlić na ekranie telewizora
|
||||
bc.msg.message_to_screen=komunikat na ekranie
|
||||
bc.msg.popup_to_screen=Okno wiadomości
|
||||
bc.msg.send_message=Wyślij wiadomość
|
||||
|
||||
# ========= Sterowanie - Zrzut ekranu
|
||||
bc.screenshot.create=Zrzut ekranu
|
||||
bc.screenshot.delete=Wyczyść zrzut ekranu
|
||||
bc.screenshot.zoom=Powiększenie zrzutu ekranu
|
||||
bc.screenshot.wait_text=Tworzenie zrzutu ekranu
|
||||
bc.screenshot.checkenable=OSD i/lub telewizor musi być używany!
|
||||
|
||||
# ========= Sterowania - Inne
|
||||
bc.channels=Kanały
|
||||
|
||||
# ========= Rozszerzenia
|
||||
ext.installer_updater=Instalacja / Aktualizacja
|
||||
ext.uninstaller=Odinstaluj
|
||||
ext.search_for_ext=Wyszukiwanie rozszerzeń ...
|
||||
ext.installed_extensions=Zainstalowane rozszerzenia
|
||||
ext.type=Typ
|
||||
ext.extension=Rozszerzenia
|
||||
ext.tag=Zdarzenie
|
||||
ext.version=wersja
|
||||
ext.size=Rozmiar
|
||||
ext.uninstall=Odinstaluj
|
||||
ext.info=Informacje
|
||||
ext.free=Bezpłatne
|
||||
ext.action=Akcja
|
||||
ext.status=Stan
|
||||
ext.preview=Ustawianie nowego rozszerzenia (podgląd)
|
||||
ext.update_preview=Przejrzyj listę aktualizacji
|
||||
ext.your=Twój
|
||||
ext.update=Aktualizacja
|
||||
ext.update_install=Instalacja aktualizacji
|
||||
ext.site=Strona
|
||||
ext.refresh_now=Ustawienia zapisane. Menu jest aktualizowane.
|
||||
ext.ext_saved=Ustawienia zapisane
|
||||
|
||||
# ========= Ulubione
|
||||
bou.bouquet=Bukiety
|
||||
bou.bouquets_must_be_saved=Wszystkie bukiety muszą być zapisane!
|
||||
bou.bouquet_editor=Edytuj Ulubione
|
||||
bou.bouquet_add=Dodaj bukiet
|
||||
bou.name_of_bouquet=Nazwa dla nowego bukietu
|
||||
bou.rename_bouquet=Zmień nazwę bukietu
|
||||
bou.move_up=Góra
|
||||
bou.move_down=Dół
|
||||
bou.remove=Usuń
|
||||
bou.delete=Wyczyść
|
||||
bou.add=Dodaj
|
||||
bou.rename=Zmień nazwę
|
||||
bou.bouqets_saved=Bukiety zapisane
|
||||
bou.delete1=Czy na pewno usunąć bukiet?
|
||||
bou.delete2=
|
||||
bou.no_bouquet_name=Nieznana nazwa bukietu
|
||||
|
||||
# ========= EPG
|
||||
epg.get_epg=Pobieranie EPG ...
|
||||
epg.epg_plus=EPG Plus
|
||||
epg.select_bouquet=Wybierz bouquet - kanały zostaną zaktualizowane
|
||||
epg.hover_for_details=Przełącz, aby uzyskać więcej informacji
|
||||
epg.refresh=Aktualizacja EPG
|
||||
epg.past_hours=Poprzednie
|
||||
epg.next_hours=Następne
|
||||
epg.set_timer=Ustawianie timera
|
||||
epg.zap_to=Przełączanie kanału
|
||||
|
||||
# ========= EPG Stream Informacje
|
||||
epg.si.streaminfo=Informacje Stream
|
||||
epg.si.resolution=Rozdzielczości
|
||||
epg.si.ratio=Proporcje obrazu
|
||||
epg.si.fps=Klatek na sekundę
|
||||
epg.si.audiotype=Typ audio
|
||||
epg.si.frequence=Częstotliwość
|
||||
epg.si.onid=oryginalny ID sieci
|
||||
epg.si.sid=ID usługi
|
||||
epg.si.tsid=Transponder strumienia ID
|
||||
epg.si.vpid=
|
||||
epg.si.pmtpid=Program Map Table PID
|
||||
epg.si.pcrpid=Program zegara odniesienia PID
|
||||
epg.si.apid=audio PID
|
||||
epg.si.vtxtpid=Telegazeta PID
|
||||
epg.si.crypt=system kodowania
|
||||
|
||||
# ========= Ustawienia
|
||||
set.reload_neutrino=Restart Neutrino
|
||||
set.reboot_required=Wymaga restartu
|
||||
set.sync_with_neutrino_desc=Po zmianie ustawień poprzez yWeb: Wybierz <br/> w telewizji "Menu główne> Usługi-> Restart neutrino", aby zaakceptować zmiany<br/> Po zmianie ustawień:. Wybierz <br/> w telewizji "Menu główne> Ustawienia-> Zapisz ustawienia", aby zastosować zmiany i przeładuj stronę.
|
||||
set.sync_with_neutrino=Synchronizacja z neutrino
|
||||
|
||||
# ========= Główne ustawienia i funkcje
|
||||
set.menue.webserver=Serwer
|
||||
set.menue.epg=EPG
|
||||
set.menue.timer_settings=Ustawienia zegara
|
||||
set.menue.zapit=Przełącznik
|
||||
set.menue.backup_restore=Kopia zapasowa i przywracanie
|
||||
set.menue.bouquet_editor=Edytuj bukiety
|
||||
set.menue.video_audio=Obraz / Dźwięk
|
||||
set.menue.parental=Kontrola rodzicielska
|
||||
set.menue.direct_recording=Nagrywanie bezpośrednie
|
||||
set.menue.recording=Nagrywanie
|
||||
set.menue.audio_player=Odtwarzacz audio
|
||||
set.menue.movieplayer=Odtwarzacz wideo
|
||||
set.menue.pictureviewer=Przeglądarka zdjęć
|
||||
set.menue.lcd_display=wyświetlacz LCD
|
||||
set.menue.key_settings=Ustawienie przycisków
|
||||
set.menue.boot_options=Opcje bootowania
|
||||
set.menue.peronalization=Ustawienia osobiste
|
||||
set.menue.plugins=Dodatki
|
||||
set.menue.others=Inne
|
||||
|
||||
# ========= Ustawienia nagrywania w neutrino
|
||||
set.rec.rec_dest=Lokalizacja zapisu nagrania
|
||||
set.rec.device=Rejestracja Dźwięku
|
||||
set.rec.recmode=Tryb nagrywania
|
||||
set.rec.server=Serwer
|
||||
set.rec.recorder=VCR
|
||||
set.rec.file=Plik
|
||||
set.rec.recserver_ip=Nagrywanie IP serwera
|
||||
set.rec.recserver_port=Nagrywanie Port serwera
|
||||
set.rec.recserver_wol=
|
||||
set.rec.mac_adress=Adres MAC
|
||||
set.rec.rec_behavior=Zarządzanie nagrywaniem
|
||||
set.rec.stop_playback=Zatrzymaj odtwarzanie
|
||||
set.rec.epg_sectionsd_desc=Ustawienia nagrywania
|
||||
set.rec.epg_sectionsd=EPG (częściowe)
|
||||
set.rec.dont_stop=Nie przestawaj
|
||||
set.rec.stop=Zatrzymaj
|
||||
set.rec.restart=Restart
|
||||
set.rec.zap=Przełącz
|
||||
set.rec.scart=Zapobieganie przełączeniu Scart
|
||||
set.rec.spts=Nagrywanie w trybie SPT
|
||||
set.rec.timer_settings=Korekcja ustawienia timera
|
||||
set.rec.start_delay=Korekta rozpoczęcia nagrywania (s)
|
||||
set.rec.stop_delay=Korekta zakończenia nagrywania (s)
|
||||
set.rec.zap_delay=Korekta włączony DDI (s)
|
||||
set.rec.audio_channels=Ścieżki dźwiękowe
|
||||
set.rec.audio_standard=Tryb nagrywania dźwięku standardowy
|
||||
set.rec.audio_alternate=Tryb nagrywania dźwięku alternatywny
|
||||
set.rec.audio_ac3=Tryb nagrywania dźwięku Dolby Digital (AC3)
|
||||
set.rec.channeldir=Zapisz na liście kanałów
|
||||
set.rec.epg_end=Nagrywanie tylko do końca EPG
|
||||
set.rec.recordtime=Czas nagrywania w godzinach
|
||||
set.rec.timeshift_desc=Timeshift
|
||||
set.rec.timeshift.pause=Start z przycisku pauzy
|
||||
set.rec.timeshift.auto_record=Automatyczne nagrywanie (w sekundach, 0= wyłączone)
|
||||
set.rec.timeshift.auto_delete=Automatyczne usuwanie Timeshift
|
||||
set.rec.timeshift.tmp_timeshift=Timeshift Czasowe
|
||||
|
||||
# ========= Ustawienia Neutrino - Movieplayer
|
||||
set.mp.sources=Wybór źródła
|
||||
set.mp.streamingserver_ip=IP serwera Stream
|
||||
set.mp.streamingserver_port=Port serwera Stream
|
||||
set.mp.streamingserver=Serwer stream
|
||||
set.mp.dvd_device=Urządzenie DVD
|
||||
set.mp.vlc_dir=katalog (VLC)
|
||||
set.mp.transcoding=Transkodowanie
|
||||
set.mp.video_datarate=Przepustowość wideo
|
||||
set.mp.transcode=Transkodowane
|
||||
set.mp.video_codec=Kodek wideo
|
||||
set.mp.resolution=Rozdzielczość
|
||||
set.mp.audio_datarate=Szybkość transmisji danych audio
|
||||
set.mp.transcode_audio=Transkodowanie plików audio (DVD / VCD / mpg)
|
||||
set.mp.force_ac3=Wymuś AC3 w avi
|
||||
set.mp.player=Zawodnik
|
||||
set.mp.start_directory=Główny katalog
|
||||
set.mp.only_movieplayer=Tylko Movieplayer
|
||||
set.mp.used_buffer=Użyj bufora (WabberQueue)
|
||||
set.mp.number_buffersegments=Liczba segmentów buforowych
|
||||
set.mp.picture_in_browser=Obraz w przeglądarce
|
||||
|
||||
# ========= Ustawienia rodzicielskie w neutrino
|
||||
set.parental.activate=Włącz
|
||||
set.parental.type.never=Nigdy
|
||||
set.parental.type.bouquet=Ulubione
|
||||
set.parental.type.preset=Predefiniowane
|
||||
set.parental.minimum_age=Minimalny wiek
|
||||
set.parental.pin=PIN
|
||||
|
||||
# ========= Ustaw nhttp
|
||||
set.nhttpd.webserver=Serwer
|
||||
set.nhttpd.authentication=Uwierzytelnienie
|
||||
set.nhttpd.client_without_authentication_desc=Bez uwierzytelniania. Wpisz adres IP.
|
||||
set.nhttpd.client_without_authentication=Bez uwierzytelniania
|
||||
set.nhttpd.active_after_boot=Aktywne po ponownym uruchomieniu
|
||||
set.nhttpd.port=Port
|
||||
set.nhttpd.threading=Threading
|
||||
set.nhttpd.alternate_web_folder=Alternatywny katalog WEB
|
||||
set.nhttpd.hosted_folder=Podłączony katalog
|
||||
set.nhttpd.allowed_file_extensions=Dopuszczalne rozszerzenia / MIME
|
||||
set.nhttpd.allow_all_file_extensions=ce wszystkie rozszerzenia plików
|
||||
set.nhttpd.url_of_logos_desc=Wpisz URL lub ścieżkę do logo
|
||||
set.nhttpd.url_of_logos=URL lub katalog logo
|
||||
set.nhttpd.server=Serwer
|
||||
set.nhttpd.ips_without_keep_alive_desc=(np serwer JTG, oddzielone przecinkami)
|
||||
set.nhttpd.ips_without_keep_alive=Podtrzymanie IP
|
||||
set.nhttpd.cache=Cache
|
||||
set.nhttpd.cache_info=Informacje o cache'u
|
||||
set.nhttpd.clear_cache=Wyczyść pamięć podręczną
|
||||
set.nhttpd.server_configuration=Konfiguracja serwera
|
||||
set.nhttpd.check_password=Wymagane hasło musi mieć min. 4 znaki
|
||||
set.nhttpd.check_port=Port jest wymagany
|
||||
|
||||
# ========= Ustawienie yWeb
|
||||
set.yweb.enter_ip_desc=Wprowadzanie adresu IP (xxx.xxx.xxx.xxx)
|
||||
set.yweb.enter_mac_desc=Wpisz adres MAC (xx: xx: xx: xx: xx: xx)
|
||||
set.yweb.description=Opis
|
||||
set.yweb.enter_description_desc=Opis
|
||||
set.yweb.management_IPs=Zarządzanie IP
|
||||
set.yweb.wake_on_lan=Budzenie w sieci
|
||||
set.yweb.box_tag_desc=Nazwa urządzenia w górnym menu.
|
||||
set.yweb.box_tag=Nazwa urządzenia
|
||||
set.yweb.box_color_desc=Kolor nazwy urządzenia w górnym menu. np .. wpisz 2188e0 bez #
|
||||
set.yweb.box_color=Kolor
|
||||
set.yweb.start_page=Strona główna
|
||||
set.yweb.remote=Pilot
|
||||
|
||||
# ========= Ustawienia Przeglądarki zdjęć
|
||||
set.pv.pictureviewer=Przeglądarka zdjęć
|
||||
set.pv.scale=Skalowanie
|
||||
set.pv.scale.none=Brak
|
||||
set.pv.scale.simple=Proste
|
||||
set.pv.scale.complex=Kompletne
|
||||
set.pv.slideshow_duration=Czas prezentacji
|
||||
set.pv.start_dir=Katalog początkowy
|
||||
set.pv.decoding_server_ip=IP serwera
|
||||
set.pv.decoding_server_port=Port serwera
|
||||
|
||||
# ========= Ustawienia odtwarzacza audio
|
||||
set.ap.audioplayer=Odtwarzacz audio
|
||||
set.ap.display_order.actor_title=Artysta, Tytuł
|
||||
set.ap.display_order.title_actor=Tytuł, Wykonawca
|
||||
set.ap.display_order=Pokaż
|
||||
set.ap.select_actual_track=Wybór utworów
|
||||
set.ap.search_by_name=Szukaj według nazwy
|
||||
set.ap.repeat_mode=Tryb powtarzania
|
||||
set.ap.show_playlist=Pokaż listę
|
||||
set.ap.screensaver=Wygaszacz ekranu (min, 0=wył.)
|
||||
set.ap.decode_priority=Wysoki priorytet dekodowania
|
||||
set.ap.start_dir=Katalog początkowy
|
||||
set.ap.parse_shoutcast=Shoutcast Meta-dane
|
||||
|
||||
# ========= Ustawienia czasu
|
||||
set.timer.header=Ustawienia zegara
|
||||
set.timer.username=Nazwa Użytkownika
|
||||
set.timer.password=Hasło
|
||||
set.timer.klack.url_desc=("&" zostaną przekonwertowane do ";", aby zapisać)
|
||||
set.timer.klack.url=Osobiste RSS
|
||||
set.timer.klack.security_code_desc=Twój kod zabezpieczający, aby pobierać dane bez logowania
|
||||
set.timer.klack.security_code=Kod zabezpieczający
|
||||
set.timer.channel_name_replacelist=Nazwa kanału
|
||||
|
||||
# ========= Ustawienia Kopia zapasowa / Przywracanie
|
||||
set.settings.backup=Kopia zapasowa
|
||||
set.settings.backup_desc=Tworzenie kopii zapasowej - ustawienia
|
||||
set.settings.restore=Przywróć
|
||||
set.settings.restore_desc=Przywracanie ustawień. Twój tuner zostanie zrestartowany.
|
||||
set.settings.warning=Kopia zapasowa i przywracanie jest możliwe tylko dla tego samego obrazu na tym samym poziomie rozwoju.
|
||||
|
||||
# ========= Narzędzia Informacje
|
||||
tools.info.show_messages=Komunikaty jądra
|
||||
tools.info.processes=Procesy
|
||||
tools.info.memory=Pamięć
|
||||
tools.info.cpu_info=Informacje o CPU
|
||||
tools.info.mem_info=Informacje o pamięci
|
||||
tools.info.partitions=Partycje
|
||||
tools.info.mtd=MTD
|
||||
tools.info.stat=Statystyki
|
||||
tools.info.version=wersja
|
||||
|
||||
# ========= Narzędzia yInstaller
|
||||
tools.yinstaller.no_file_given=wybranych plików!
|
||||
tools.yinstaller.space.mtd=Całkowita pojemność
|
||||
tools.yinstaller.space.used=Użyte
|
||||
tools.yinstaller.space.free=Bezpłatne
|
||||
tools.yinstaller.space.percentage=Procentowe użycie
|
||||
tools.yinstaller.not_determine=Nie można określić ilość wolnego miejsca.
|
||||
tools.yinstaller.head=yInstaller
|
||||
tools.yinstaller.tar_file=Plik .tar
|
||||
tools.yinstaller.upload_install=wysyłania i zainstalować
|
||||
|
||||
# ========= Narzędzia
|
||||
tools.automount_desc=Zarządzanie automatyczne montowanie
|
||||
tools.automount=Automatyczne montowanie
|
||||
tools.mounts_desc=Zarządzanie zamontowanymi
|
||||
tools.mounts=Zamontowane
|
||||
tools.wake_on_lan=Budzenie w sieci
|
||||
tools.check_install=Sprawdzanie instalacji
|
||||
tools.expert=Zaawansowane
|
||||
tools.image_desc=przywracanie lub flaszowanie obrazu
|
||||
tools.image=obraz
|
||||
tools.command_shell=Komendy shell
|
||||
tools.not_installed=Nie zainstalowane
|
||||
tools.cmd_shell.output_desc=Automatyczne przejście (tylko IE)
|
||||
tools.path=Ścieżka
|
||||
tools.command=Polecenie
|
||||
tools.cmd.enter_command=Wstaw polecenie
|
||||
tools.cmd.execute_command=Wykonaj polecenie
|
||||
tools.boot_logo=Bootlogo
|
||||
tools.filemgr_desc=Pliki i katalogi
|
||||
tools.filemgr=Menadżer plików
|
||||
|
||||
# ========= Menu LIVE TV
|
||||
live.heading=LIVE TV / timer
|
||||
live.live=LIVE TV
|
||||
live.tv_popup_desc=LIVE TV (okno)
|
||||
live.tv=TV
|
||||
live.radio_popup_desc=LIVE Radio (okno)
|
||||
live.radio=Radio
|
||||
live.double_view=Podwójny rozmiar
|
||||
live.timer=Timer
|
||||
live.epg=EPG
|
||||
live.epg_plus_popup_desc=EPG (okno)
|
||||
live.epg_plus=EPG Plus
|
||||
live.timer_sync=Synchronizacja timera
|
||||
|
||||
# ========= LIVE TV / Radio
|
||||
live.get_stream_info=Uzyskiwanie informacji o strumieniu <br/> ustalona.
|
||||
live.getting_bouquets=Pobieranie bukietów ...
|
||||
live.getting_channels=Pobieranie kanałów ...
|
||||
live.select_resolution=Wybierz rozdzielczość
|
||||
live.change_channel=Zmień kanał
|
||||
live.view_epg=Zobacz EPG dla wybranego kanału
|
||||
live.reload=Odśwież kanały
|
||||
live.getting_subchannels=Idź do podkanałów ...
|
||||
live.mute=Wyłączenie głośnika
|
||||
live.stop=Zatrzymaj
|
||||
live.play_or_pause=Rozpocznij lub wstrzymaj
|
||||
live.lower_volume=Ciszej
|
||||
live.higher_volume=Głośniej
|
||||
live.fullscreen=Przełącz na pełny ekran
|
||||
live.lock_unlock=Zablokuj / Odblokuj TV (tryb przesyłania, rc, lcd)
|
||||
live.toggle_udp=Strumieniowe UDP Wł. / Wył.
|
||||
live.settings=Ustawienia widoku
|
||||
live.snapshot=Zrzut
|
||||
live.record=Tryb nagrywania
|
||||
live.transcode=Tryb transkodowania
|
||||
live.build_vlc=... sterowanie VLC ...
|
||||
live.select_bouquet=Wybierz bukiet (kanały zostaną zaktualizowane)
|
||||
live.select_channel=Wybór kanału (używany do przełączania)
|
||||
live.live_popup_msg=Zmiana kanałów bezpośrednio przez WWW, Box - Pilot zdalnego sterowania
|
||||
live.unlock=Odblokowanie pilota zdalnego sterowania
|
||||
|
||||
# =========== LIVE Nagrywanie
|
||||
live.rec.record_mode=Tryb nagrywania
|
||||
live.rec.filename=Nazwa pliku
|
||||
live.rec.display_on=Ekran
|
||||
live.rec.transcoding_on=Transkodowanie włączone
|
||||
live.rec.record=Nagrywanie
|
||||
live.rec.stop_record=Zakończ nagrywanie
|
||||
live.rec.tanscode=Nagrywanie transkodowane
|
||||
live.rec.profile=Profil
|
||||
live.rec.video=Wideo
|
||||
live.rec.width=Szerokość
|
||||
live.rec.height=Wysokość
|
||||
live.rec.codec=Codec
|
||||
live.rec.bitrate=Bitrate
|
||||
live.rec.scale=Skalowanie
|
||||
live.rec.audio=Dźwięk
|
||||
live.rec.channels=kanały
|
||||
live.rec.trans_broadcast=Transkodowanie transmisji
|
||||
live.rec.access=Dostęp
|
||||
live.rec.type=Typ
|
||||
live.rec.ip_port=IP:Port
|
||||
|
||||
# ========= LIVE TV Ustawienia
|
||||
live.set.vlc_settings=Ustawienia VLC (IE; Mozilla>=0.8.6.1)
|
||||
live.set.deinterlace=przeplotu
|
||||
live.set.http_caching=http Buforowanie
|
||||
live.set.udp_defaul=UDP jako domyślny
|
||||
live.set.slavebox_ip=Slavebox Box IP
|
||||
live.set.enter_ip=IP (xxx.xxx.xxx.xxx) z Slavebox
|
||||
live.set.vlc_rec_dir=Ścieżka zapisu VLC
|
||||
live.set.refresh_liveview=Odśwież LiveView
|
||||
|
||||
# ========= LIVE Edycja zegara
|
||||
live.timer_edit.timer=Timer edycji
|
||||
live.timer_edit.times=Times
|
||||
live.timer_edit.alarm_date=Ustaw czas rozpoczęcia
|
||||
live.timer_edit.time=Czas
|
||||
live.timer_edit.stop_date=Ustawienie czasu zatrzymania
|
||||
live.timer_edit.repeat=Powtórz
|
||||
live.timer_edit.repeat1=Powtórz (0 = bez ograniczeń)
|
||||
live.timer_edit.weekdays.format=(Pon - Nd, X=Zegar)
|
||||
live.timer_edit.weekdays=Cotygodniowe
|
||||
live.timer_edit.values=Wartości
|
||||
live.timer_edit.channel=Kanał
|
||||
live.timer_edit.apids=Pidy audio
|
||||
live.timer_edit.apids.default=Domyślny
|
||||
live.timer_edit.apids.standard=Standard
|
||||
live.timer_edit.apids.alt=Alternatywne
|
||||
live.timer_edit.apids.ac3=AC3
|
||||
live.timer_edit.standby=Uśpienie
|
||||
live.timer_edit.plugin=Dodatki
|
||||
live.timer_edit.rec_dir=atalogŚcieżka dla nagrań
|
||||
live.timer_edit.description=Opis
|
||||
|
||||
# ========= LIVE Synchronizacja zegara
|
||||
live.timer-sync.get_timer=Synchronizacja czasu
|
||||
live.timer-sync.header=Synchronizacja zegara
|
||||
live.timer-sync.timer_source=Źródło czasu
|
||||
live.timer-sync.rec_dir=Katalog nagrań
|
||||
live.timer-sync.settings=Ustawienia
|
||||
live.timer-sync.debugging=Debugowanie
|
||||
live.timer-sync.get_selected=Ładowanie wybranych
|
||||
live.timer-sync.clear_all=Usuń wszystko
|
||||
live.timer-sync.timer_preview=Podgląd timera
|
||||
live.timer-sync.start_time=Czas rozpoczęcia
|
||||
live.timer-sync.end_time=Czas zakończenia
|
||||
live.timer-sync.channel=Kanał
|
||||
live.timer-sync.programm=Program
|
||||
live.timer-sync.source=Źródło
|
||||
live.timer-sync.set_timer=Ustaw zegar
|
||||
live.timer-sync.clear_log=Wyczyść historię
|
||||
live.timer-sync.log=Zaloguj
|
||||
live.timer-sync.action=Akcja
|
||||
live.timer-sync.status=Stan
|
||||
|
||||
# ========= INFO
|
||||
info.hel=Pomoc
|
||||
info.About=O
|
||||
info.check_for_updates=Sprawdź aktualizacje
|
||||
info.your_version=Zainstalowana wersja
|
||||
info.actual_version=Aktualna wersja
|
||||
|
||||
# ========= Pilot
|
||||
rc.key_power=Wyłącz
|
||||
rc.key_mute=Wycisz
|
||||
rc.key_1=1
|
||||
rc.key_2=2
|
||||
rc.key_3=3
|
||||
rc.key_4=4
|
||||
rc.key_5=5
|
||||
rc.key_6=6
|
||||
rc.key_7=7
|
||||
rc.key_8=8
|
||||
rc.key_9=9
|
||||
rc.key_0=0
|
||||
rc.key_text=TXT
|
||||
rc.key_favorites=Ulubione
|
||||
rc.key_volumeup=Głośniej
|
||||
rc.key_volumedown=Ciszej
|
||||
rc.key_pageup=Poprzednia strona
|
||||
rc.key_pagedown=Następna strona
|
||||
rc.key_radio=TV / Radio
|
||||
rc.key_mode=Format wideo
|
||||
rc.key_next=Następny
|
||||
rc.key_previous=Poprzedni
|
||||
rc.key_sleep=Uśpienie
|
||||
rc.key_audio=Dźwięk
|
||||
rc.key_help=Pomoc
|
||||
rc.key_red=Czerwony
|
||||
rc.key_green=Zielony
|
||||
rc.key_yellow=Żółty
|
||||
rc.key_blue=Niebieski
|
||||
rc.key_epg=EPG
|
||||
rc.key_info=Info
|
||||
rc.key_ok=OK
|
||||
rc.key_up=Góra
|
||||
rc.key_down=Dół
|
||||
rc.key_left=Lewa
|
||||
rc.key_right=Prawy
|
||||
rc.key_setup=Menu
|
||||
rc.key_home=Wyjście
|
||||
rc.key_sat=Satelity
|
||||
rc.key_www=WWW
|
||||
rc.key_rewind=Do tyłu
|
||||
rc.key_play=Odtwarzaj
|
||||
rc.key_forward=Do przodu
|
||||
rc.key_stop=Zatrzymaj
|
||||
rc.key_record=Nagraj
|
||||
rc.key_pause=Pauza
|
||||
rc.key_games=Gry
|
||||
rc.key_time=Czas
|
||||
rc.key_picsize=Wielkość obrazu
|
||||
rc.key_picmode=Tryb obrazu
|
@@ -1,4 +1,4 @@
|
||||
installdir = $(DATADIR)/neutrino/httpd/scripts
|
||||
installdir = $(PRIVATE_HTTPDDIR)/scripts
|
||||
|
||||
install_DATA= api.sh _Y_Globals.sh _Y_Library.sh Y_Live.sh Y_Tools.sh
|
||||
|
||||
@@ -6,5 +6,5 @@ install_DATA= api.sh _Y_Globals.sh _Y_Library.sh Y_Live.sh Y_Tools.sh
|
||||
install_DATA += Y_NAS.sh
|
||||
|
||||
install-data-hook:
|
||||
chmod 0755 $(DESTDIR)$(DATADIR)/neutrino/httpd/scripts/api.sh
|
||||
chmod 0755 $(DESTDIR)$(DATADIR)/neutrino/httpd/scripts/Y_*.sh
|
||||
chmod 0755 $(DESTDIR)$(PRIVATE_HTTPDDIR)/scripts/api.sh
|
||||
chmod 0755 $(DESTDIR)$(PRIVATE_HTTPDDIR)/scripts/Y_*.sh
|
||||
|
@@ -51,16 +51,23 @@ style_get()
|
||||
# -----------------------------------------------------------
|
||||
style_set()
|
||||
{
|
||||
# This function should be called one time after installing a new image
|
||||
# to get sure, the right skin is installed too
|
||||
|
||||
style=${1:-$(config_get_value_direct $y_config_Y_Web 'style')}
|
||||
test -n "$style" || return
|
||||
|
||||
y_path_directory=$(config_get_value_direct $y_config_nhttpd 'WebsiteMain.directory')
|
||||
y_path_override_directory=$(config_get_value_direct $y_config_nhttpd 'WebsiteMain.override_directory')
|
||||
|
||||
cd $y_path_directory
|
||||
if [ -e $y_path_override_directory/styles/Y_Dist-$1.css ]; then
|
||||
cp $y_path_override_directory/styles/Y_Dist-$1.css Y_Dist.css
|
||||
if [ -e $y_path_override_directory/styles/Y_Dist-$style.css ]; then
|
||||
cp $y_path_override_directory/styles/Y_Dist-$style.css Y_Dist.css
|
||||
elif [ -e $y_path_directory/styles/Y_Dist-$style.css ]; then
|
||||
cp $y_path_directory/styles/Y_Dist-$style.css Y_Dist.css
|
||||
else
|
||||
cp $y_path_directory/styles/Y_Dist-$1.css Y_Dist.css
|
||||
config_set_value_direct $y_config_Y_Web 'style'
|
||||
fi
|
||||
#config_set_value_direct $y_config_Y_Web 'style' $1
|
||||
}
|
||||
# -----------------------------------------------------------
|
||||
# Image Backup - build form
|
||||
@@ -574,7 +581,7 @@ case "$1" in
|
||||
fbshot) shift 1; do_fbshot $* ;;
|
||||
fbshot_clear) do_fbshot_clear ;;
|
||||
screenshot_clear) do_screenshot_clear ;;
|
||||
get_update_version) wget -O /tmp/version.txt "http://git.coolstreamtech.de/?p=cst-public-gui-neutrino.git;a=blob_plain;f=src/nhttpd/web/Y_Version.txt" ;;
|
||||
get_update_version) wget -O /tmp/version.txt "http://git.coolstreamtech.de/?p=cst-public-gui-neutrino.git;a=blob_plain;f=src/nhttpd/web/Y_Version.txt;hb=refs/heads/cst-next" ;;
|
||||
settings_backup_restore) shift 1; do_settings_backup_restore $* ;;
|
||||
exec_cmd) shift 1; $* ;;
|
||||
automount_list) shift 1; do_automount_list $* ;;
|
||||
|
@@ -1,3 +1,3 @@
|
||||
installdir = $(DATADIR)/neutrino/httpd/styles
|
||||
installdir = $(PRIVATE_HTTPDDIR)/styles
|
||||
|
||||
install_DATA = Y_Dist-Tuxbox.css
|
||||
install_DATA = Y_Dist-Tuxbox.css Y_Dist-GreyBlue.css
|
||||
|
424
src/nhttpd/web/styles/Y_Dist-GreyBlue.css
Normal file
424
src/nhttpd/web/styles/Y_Dist-GreyBlue.css
Normal file
@@ -0,0 +1,424 @@
|
||||
/* Grey Blue - yweb style by OneOfNine */
|
||||
|
||||
body {
|
||||
background-color: #303030;
|
||||
color: #ffffff;
|
||||
}
|
||||
body.iframe {
|
||||
background-color: #272525;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
button[ytype]{
|
||||
color: #ffffff;
|
||||
background-position: 5px;
|
||||
background-attachment: scroll;
|
||||
background-color: #303030;
|
||||
background-repeat: no-repeat;
|
||||
padding-left: 25px;
|
||||
padding-right: 5px;
|
||||
vertical-align: middle;
|
||||
text-align:left;
|
||||
}
|
||||
button[ytype="save"]{background-image:url(/images/save.png);}
|
||||
button[ytype="saveall"]{background-image:url(/images/saveall.png);}
|
||||
button[ytype="cancel"]{background-image:url(/images/cross.png);}
|
||||
button[ytype="refresh"],button[ytype="reboot"]{background-image:url(/images/reload.png);}
|
||||
button[ytype="record"]{background-image:url(/images/record.png);}
|
||||
button[ytype="zap"]{background-image:url(/images/zap.png);}
|
||||
button[ytype="timeup"]{background-image:url(/images/time_up.png);}
|
||||
button[ytype="timedown"]{background-image:url(/images/time_down.png);}
|
||||
button[ytype="timeadd"]{background-image:url(/images/time_add.png);}
|
||||
button[ytype="snapshot"]{background-image:url(/images/snapshot.png);}
|
||||
button[ytype="clearshot"]{background-image:url(/images/remove.png);}
|
||||
button[ytype="switchrc"]{background-image:url(/images/fb.png);}
|
||||
button[ytype="go"]{background-image:url(/images/accept.png);}
|
||||
button[ytype="download"]{background-image:url(/images/wget.png);}
|
||||
button[ytype="clear"]{background-image:url(/images/remove.png);}
|
||||
button[ytype="add"]{background-image:url(/images/new.png);}
|
||||
button[ytype="delete"]{background-image:url(/images/remove.png);}
|
||||
button[ytype="edit"]{background-image:url(/images/modify.png);}
|
||||
button[ytype="flash"]{background-image:url(/images/flash.png);}
|
||||
|
||||
button[ytype="no"] {
|
||||
padding-left: 5px
|
||||
}
|
||||
|
||||
/*TODO: input file*/
|
||||
button[type="button"] {
|
||||
height: 22px;
|
||||
border: 1px solid #444444;
|
||||
background-color: #303030;
|
||||
border-radius: 3px;
|
||||
color: #ffffff;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
}
|
||||
button:hover,input[type="button"]:hover,input[type="submit"]:hover,input[type="file"]:hover {
|
||||
position:relative;
|
||||
left:1px;
|
||||
top:1px;
|
||||
background-color: #303030;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
input {
|
||||
height: 22px;
|
||||
border: 1px solid #444444;
|
||||
background-color: #303030;
|
||||
border-radius: 3px;
|
||||
color: #ffffff;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
}
|
||||
|
||||
input[type="text"]:focus,input[type="password"]:focus{
|
||||
border: 1px solid #444444;
|
||||
background: #343434;
|
||||
}
|
||||
|
||||
select {
|
||||
height: 22px;
|
||||
border: 1px solid #444444;
|
||||
background-color: #303030;
|
||||
border-radius: 3px;
|
||||
color: #ffffff;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #ffffff;
|
||||
}
|
||||
td {
|
||||
color: #ffffff;
|
||||
}
|
||||
tr {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
border-top: solid #ffffff 1px;
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
.y_menu_prim_box {
|
||||
border-color: #000;
|
||||
}
|
||||
.y_menu_prim_box_head {
|
||||
background: #272525;
|
||||
}
|
||||
.y_menu_prim_box_body {
|
||||
background-color: #272525;
|
||||
}
|
||||
.y_menu_prim_box_body #prim span,
|
||||
.y_menu_prim_box_body #box_name,
|
||||
.y_menu_prim_box_body #clock {
|
||||
text-shadow: 1px 1px 1px #000;
|
||||
}
|
||||
.y_menu_prim li a {
|
||||
text-shadow: 1px 1px 1px #000;
|
||||
}
|
||||
.y_menu_prim li a:hover {
|
||||
color: #518eea;
|
||||
}
|
||||
.y_menu_prim li.selected a {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.y_menu_sec_box {
|
||||
border-color: #000;
|
||||
}
|
||||
.y_menu_sec_box_head {
|
||||
background: #000000;
|
||||
}
|
||||
.y_menu_sec_box_head h2 {
|
||||
color: #518eea;
|
||||
/*
|
||||
text-shadow: 1px 1px 1px #000;
|
||||
*/
|
||||
text-shadow: 0 -1px #272525, 1px 0 #272525, 0 1px #272525, -1px 0 #272525, #000 1px 1px 1px;
|
||||
}
|
||||
.y_menu_sec_box_body {
|
||||
background-color: #272525;
|
||||
}
|
||||
.y_menu_sec li {
|
||||
color: #ffffff;
|
||||
}
|
||||
.y_menu_sec li.plain a {
|
||||
color: #ffffff
|
||||
}
|
||||
.y_menu_sec li a:hover {
|
||||
color: #518eea;
|
||||
}
|
||||
.y_menu_sec_section {
|
||||
background-color: #3e8bfe;
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px #272525, 1px 0 #272525, 0 1px #272525, -1px 0 #272525, #000 1px 1px 1px;
|
||||
}
|
||||
|
||||
.work_box {
|
||||
border-color: #000;
|
||||
}
|
||||
.work_box_head {
|
||||
background-color: #00006e;
|
||||
}
|
||||
.work_box_head h2,.work_box_head_h2 {
|
||||
background-color: #000000;
|
||||
color: #518eea;
|
||||
text-shadow: 0 -1px #272525, 1px 0 #272525, 0 1px #272525, -1px 0 #272525, #000 1px 1px 1px;
|
||||
}
|
||||
.work_box_body {
|
||||
background-color: #272525;
|
||||
}
|
||||
|
||||
.y_wait_box {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
.y_wait_box_visible {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
.y_wait_box_head {
|
||||
background: #000000;
|
||||
color: #3e8bfe;
|
||||
}
|
||||
.y_wait_box_head h2 {
|
||||
text-shadow: 0 -1px #272525, 1px 0 #272525, 0 1px #272525, -1px 0 #272525, #000 1px 1px 1px;
|
||||
color: #3e8bfe;
|
||||
}
|
||||
.y_wait_box_body {
|
||||
background-color: #272525;
|
||||
}
|
||||
|
||||
.y_table,.y_form_table,.y_invisible_table,y_form table {
|
||||
color: #ffffff;
|
||||
}
|
||||
.y_live_button {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.y_live_bouquets {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.y_live_channels
|
||||
{
|
||||
color: #ffffff;
|
||||
}
|
||||
.y_live_audio_pids
|
||||
{
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.y_form_header_oline {
|
||||
color : #ffffff;
|
||||
}
|
||||
|
||||
.y_form_header {
|
||||
border-bottom : 1px solid #ffffff;
|
||||
color : #ffffff;
|
||||
padding-top:0.5em;
|
||||
}
|
||||
|
||||
.y_form_section {
|
||||
color : #ffffff;
|
||||
}
|
||||
|
||||
.y_text_boxcontrol_table {
|
||||
border-color: #303030;
|
||||
}
|
||||
|
||||
.y_text_boxcontrol_table_progress {
|
||||
border-color: #303030;
|
||||
}
|
||||
.y_text_boxcontrol_div_progress {
|
||||
border-color: #303030;
|
||||
}
|
||||
#audiobar_right,
|
||||
#sigbar_right,
|
||||
#snrbar_right {
|
||||
background-color: #272525;
|
||||
}
|
||||
|
||||
.y_epg_info {
|
||||
border: none;
|
||||
background-color: #202020;
|
||||
}
|
||||
.y_epg_info #description,
|
||||
.y_epg_info #info1,
|
||||
.y_epg_info #info2 {
|
||||
background-color: #272525;
|
||||
}
|
||||
|
||||
.bouquetitemlist .logo_cell {
|
||||
background: #303030;
|
||||
border-bottom: 1px solid #272525;
|
||||
}
|
||||
|
||||
.channel_logo {
|
||||
background: #343434;
|
||||
}
|
||||
|
||||
.channel_logos
|
||||
{
|
||||
background: #343434;
|
||||
}
|
||||
|
||||
#epg_plus {
|
||||
border-color : #000;
|
||||
}
|
||||
.ep_bouquet {
|
||||
border-color : #000;
|
||||
}
|
||||
.ep_bouquet_name {
|
||||
background: #333333;
|
||||
border-color : #333333;
|
||||
}
|
||||
.ep_bouquet_name a {
|
||||
}
|
||||
.ep_bouquet_item {
|
||||
border-color : #333333;
|
||||
}
|
||||
.ep_bouquet_item:hover {
|
||||
background-color: #444444;
|
||||
}
|
||||
.ep_bouquet_item span:hover {
|
||||
}
|
||||
.ep_bouquet_rec {
|
||||
border-color : #ff0000;
|
||||
}
|
||||
.ep_bouquet_zap {
|
||||
border-color : #440044;
|
||||
}
|
||||
.ep_time_bar {
|
||||
border-color : #000;
|
||||
}
|
||||
.ep_time_bar_item {
|
||||
border-color : #000;
|
||||
}
|
||||
.ep_info_desc {
|
||||
}
|
||||
.ep_info_info1 {
|
||||
}
|
||||
.ep_info_info2 {
|
||||
}
|
||||
|
||||
#epg_info {
|
||||
border : #999999 solid 1px;
|
||||
background-color: #272525;
|
||||
}
|
||||
#epg_time {
|
||||
}
|
||||
|
||||
#epglist tbody tr:hover {
|
||||
background-color: #00006e;
|
||||
}
|
||||
.a
|
||||
{
|
||||
background-color: #333333;
|
||||
}
|
||||
.aepg
|
||||
{
|
||||
background-color: #333333;
|
||||
border-bottom: 1px solid #272525;
|
||||
}
|
||||
.b
|
||||
{
|
||||
background-color: #444444;
|
||||
}
|
||||
.bepg
|
||||
{
|
||||
background-color: #444444;
|
||||
border-bottom: 1px solid #272525;
|
||||
}
|
||||
.c
|
||||
{
|
||||
background-color: #518eea;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.cepg
|
||||
{
|
||||
background-color: #518eea;
|
||||
border-bottom: 1px solid #272525;
|
||||
}
|
||||
.cslider_table
|
||||
{
|
||||
border: 1px solid #000000;
|
||||
}
|
||||
.cslider_used
|
||||
{
|
||||
background-color: #666666;
|
||||
}
|
||||
.cslider_free
|
||||
{
|
||||
background-color: #303030;
|
||||
}
|
||||
.cslider_noepg
|
||||
{
|
||||
background-color: #272525;
|
||||
}
|
||||
.epg
|
||||
{
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.atimer {
|
||||
background-color: #535353;
|
||||
}
|
||||
|
||||
.lt_table th {
|
||||
color : #ffffff;
|
||||
}
|
||||
|
||||
table.screenshot {
|
||||
background: #272525;
|
||||
}
|
||||
|
||||
img#shot {
|
||||
background-color: #272525;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
/* Filemgr */
|
||||
.diag {
|
||||
border-color: #272525;
|
||||
background-color: #272525;
|
||||
}
|
||||
.toolbar td {
|
||||
border-color: #272525;
|
||||
}
|
||||
.toolbar img {
|
||||
border:0;
|
||||
}
|
||||
.toolbar td:hover {
|
||||
background-color: #272525;
|
||||
}
|
||||
.button {
|
||||
border-color: #272525;
|
||||
}
|
||||
.button:hover {
|
||||
background-color: #272525;
|
||||
}
|
||||
.mform {
|
||||
}
|
||||
|
||||
.filelist a{
|
||||
}
|
||||
.box {
|
||||
border-color: #272525;
|
||||
}
|
||||
.epginfo2{
|
||||
}
|
||||
.detail_title{
|
||||
border-color: #272525;
|
||||
background-color: #272525;
|
||||
}
|
||||
.detail_title_active{
|
||||
border-color: #272525;
|
||||
background-color: #272525;
|
||||
}
|
||||
.detail_img {
|
||||
}
|
@@ -112,7 +112,7 @@
|
||||
#define NEUTRINO_CONFIGFILE CONFIGDIR"/neutrino.conf"
|
||||
#define HOSTEDDOCUMENTROOT HOSTED_HTTPDDIR
|
||||
#define HOSTEDDOCUMENTURL "/hosted/"
|
||||
#define EXTRASDOCUMENTROOT "/mnt/hosted/extras"
|
||||
#define EXTRASDOCUMENTROOT HOSTED_HTTPDDIR"/extras"
|
||||
#define EXTRASDOCUMENTURL "/hosted/extras"
|
||||
#define ZAPITXMLPATH CONFIGDIR"/zapit"
|
||||
#define TUXBOX_LOGOS_URL ICONSDIR"/logo"
|
||||
|
@@ -548,6 +548,7 @@ void Cyhttpd::ReadConfig(void) {
|
||||
ConfigList["WebsiteMain.hosted_directory"] = Config->getString(
|
||||
"WebsiteMain.hosted_directory", HOSTEDDOCUMENTROOT);
|
||||
|
||||
ConfigList["Tuxbox.DisplayLogos"] = Config->getString("Tuxbox.DisplayLogos", "true");
|
||||
// Check location of logos
|
||||
if (Config->getString("Tuxbox.LogosURL", "").empty()) {
|
||||
if (access(ConfigList["WebsiteMain.override_directory"] + "/logos", R_OK) == 0) {
|
||||
|
@@ -1,4 +0,0 @@
|
||||
The code-base of yhttpd is Tuxbox-nhttpd 2.x (cvs.tuxbox.org)
|
||||
|
||||
Authors since re-writting of yhttpd:
|
||||
Johannes Golombek [yjogol@cvs.tuxbox.org]
|
@@ -1,22 +0,0 @@
|
||||
------------------------------------------------------------------------------
|
||||
yhttpd-GOALS
|
||||
(yjogol@online.de, August 2006)
|
||||
------------------------------------------------------------------------------
|
||||
The yhttpd-Webserver is a small C++ based Webserver for embedded Systems.
|
||||
It has a simple Software-Architecture and uses for string-operations
|
||||
mostly buffer-save functions to prevent security exploits like buffer overruns.
|
||||
It is designed for threading and multiuser access for static files.
|
||||
It can be compiled on Windows Systems using Cygwin, on Linux-Systems
|
||||
and had been succesfully compiled for AVM Fritzbox or for
|
||||
Maxtor Shared Storage.
|
||||
|
||||
The code-base of yhttpd is Tuxbox-nhttpd 2.x (cvs.tuxbox.org)
|
||||
|
||||
Starting with Version 3.0 the nhttpd source code was splitted into
|
||||
a core Webserver (yhttpd_core) and extension modules (yhttpd_mods).
|
||||
|
||||
The yhttpd_core and yhttp_mods ware completly rewritten.
|
||||
|
||||
The Hook-System (extension modules) encapsulate all requests and responses
|
||||
for the tuxboxapi. So both tuxapi and yhttpd can be developed seperatlly and
|
||||
independ from each other.
|
@@ -216,29 +216,24 @@ std::string decodeString(std::string encodedString) {
|
||||
//-----------------------------------------------------------------------------
|
||||
// HTMLEncode std::string
|
||||
//-----------------------------------------------------------------------------
|
||||
std::string encodeString(std::string decodedString) {
|
||||
unsigned int len = sizeof(char) * decodedString.length() * 5 + 1;
|
||||
std::string result(len, '\0');
|
||||
char *newString = (char *) result.c_str();
|
||||
char one_char;
|
||||
if (len == result.length()) // got memory needed
|
||||
{
|
||||
char *dstring = (char *) decodedString.c_str();
|
||||
while ((one_char = *dstring++)) /* use the null character as a loop terminator */
|
||||
{
|
||||
if (isalnum(one_char))
|
||||
*newString++ = one_char;
|
||||
else
|
||||
newString += sprintf(newString, "&#%d;",
|
||||
(unsigned char) one_char);
|
||||
}
|
||||
std::string encodeString(const std::string &decodedString)
|
||||
{
|
||||
std::string result="";
|
||||
char buf[10]= {0};
|
||||
|
||||
*newString = '\0'; /* when done copying the string,need to terminate w/ null char */
|
||||
result.resize((unsigned int) (newString - result.c_str()), '\0');
|
||||
return result;
|
||||
} else {
|
||||
return "";
|
||||
for (unsigned int i=0; i<decodedString.length(); i++)
|
||||
{
|
||||
const char one_char = decodedString[i];
|
||||
if (isalnum(one_char)) {
|
||||
result += one_char;
|
||||
} else {
|
||||
snprintf(buf,sizeof(buf), "&#%d;",(unsigned char) one_char);
|
||||
result +=buf;
|
||||
}
|
||||
}
|
||||
result+='\0';
|
||||
result.reserve();
|
||||
return result;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -23,7 +23,7 @@ void correctTime(struct tm *zt);
|
||||
std::string itoa(unsigned int conv);
|
||||
std::string itoh(unsigned int conv);
|
||||
std::string decodeString(std::string encodedString);
|
||||
std::string encodeString(std::string decodedString);
|
||||
std::string encodeString(const std::string &decodedString);
|
||||
std::string string_tolower(std::string str);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -76,10 +76,11 @@ void CLanguage::setLanguage(std::string _language){
|
||||
ConfigLanguage->loadConfig(language_dir + "/" + _language);
|
||||
DefaultLanguage->loadConfig(language_dir + "/" + HTTPD_DEFAULT_LANGUAGE);
|
||||
|
||||
const char * path[2] = { CONFIGDIR "/locale/", DATADIR "/neutrino/locale/"};
|
||||
const char * path[2] = { LOCALEDIR_VAR, LOCALEDIR };
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
std::string filename = path[i];
|
||||
filename += "/";
|
||||
filename += g_settings.language;
|
||||
filename += ".locale";
|
||||
|
||||
@@ -89,7 +90,7 @@ void CLanguage::setLanguage(std::string _language){
|
||||
}
|
||||
else if (i == 1) {
|
||||
// load neutrino default language (should not happen)
|
||||
NeutrinoLanguage->loadConfig(DATADIR "/neutrino/locale/english.locale", ' ');
|
||||
NeutrinoLanguage->loadConfig(LOCALEDIR "/english.locale", ' ');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -103,6 +104,8 @@ std::string CLanguage::getTranslation(std::string id){
|
||||
trans=NeutrinoLanguage->getString(id,"");
|
||||
if(trans.empty())
|
||||
trans=DefaultLanguage->getString(id,"");
|
||||
if (trans.empty())
|
||||
trans = "# " + id + " #";
|
||||
return trans;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -497,13 +497,16 @@ void *WebThread(void *args) {
|
||||
log_level_printf(2,"FD SHOULD CLOSE sock:%d!!!\n",con->sock->get_socket());
|
||||
else
|
||||
ws->addSocketToMasterSet(con->sock->get_socket()); // add to master set
|
||||
#else
|
||||
delete newConn->ySock;
|
||||
#endif
|
||||
if (!con->keep_alive)
|
||||
con->sock->isValid = false;
|
||||
con->sock->handling = false; // socket can be handled by webserver main loop (select) again
|
||||
|
||||
#ifndef Y_CONFIG_FEATURE_KEEP_ALIVE
|
||||
delete newConn->ySock;
|
||||
newConn->ySock = NULL;
|
||||
#endif
|
||||
|
||||
// (4) end thread
|
||||
delete con;
|
||||
int thread_number = newConn->thread_number;
|
||||
|
@@ -1,3 +0,0 @@
|
||||
|
||||
|
||||
Johannes Golombek [yjogol@cvs.tuxbox.org]
|
@@ -18,6 +18,7 @@
|
||||
#include <dirent.h>
|
||||
#include <signal.h>
|
||||
// tuxbox
|
||||
#include <global.h>
|
||||
#include <configfile.h>
|
||||
#include <system/helpers.h>
|
||||
// yhttpd
|
||||
@@ -371,8 +372,9 @@ std::string CyParser::cgi_cmd_parsing(CyhookHandler *hh,
|
||||
// ini-set:<filename>;<varname>;<value>[~open|save|cache]
|
||||
// if-empty:<value>~<then>~<else>
|
||||
// if-equal:<left_value>~<right_value>~<then>~<else> (left_value == right_value?)
|
||||
// if-not-equal:<left_value>~<right_value>~<then>~<else> (left_val!e == right_value?)
|
||||
// if-not-equal:<left_value>~<right_value>~<then>~<else> (left_value == right_value?)
|
||||
// if-file-exists:<filename>~<then>~<else>
|
||||
// find-exec:<filename>
|
||||
// include-block:<filename>;<block-name>[;<default-text>]
|
||||
// var-get:<varname>
|
||||
// var-set:<varname>=<varvalue>
|
||||
@@ -427,6 +429,8 @@ std::string CyParser::YWeb_cgi_cmd(CyhookHandler *hh, std::string ycmd) {
|
||||
yresult = (access(if_value, R_OK) == 0) ? if_then
|
||||
: if_else;
|
||||
}
|
||||
} else if (ycmd_type == "find-exec") {
|
||||
yresult = find_executable(ycmd_name.c_str());
|
||||
} else if (ycmd_type == "include") {
|
||||
std::string ytmp;
|
||||
std::fstream fin(ycmd_name.c_str(), std::fstream::in);
|
||||
@@ -445,6 +449,28 @@ std::string CyParser::YWeb_cgi_cmd(CyhookHandler *hh, std::string ycmd) {
|
||||
}
|
||||
} else if (ycmd_type == "func")
|
||||
yresult = this->YWeb_cgi_func(hh, ycmd_name);
|
||||
else if (ycmd_type == "define-get") {
|
||||
if (ycmd_name.compare("CONFIGDIR")) yresult = CONFIGDIR;
|
||||
else if (ycmd_name.compare("DATADIR")) yresult = DATADIR;
|
||||
else if (ycmd_name.compare("FONTDIR")) yresult = FONTDIR;
|
||||
else if (ycmd_name.compare("LIBDIR")) yresult = LIBDIR;
|
||||
else if (ycmd_name.compare("GAMESDIR")) yresult = GAMESDIR;
|
||||
else if (ycmd_name.compare("PLUGINDIR")) yresult = PLUGINDIR;
|
||||
else if (ycmd_name.compare("PLUGINDIR_VAR")) yresult = PLUGINDIR_VAR;
|
||||
else if (ycmd_name.compare("LUAPLUGINDIR")) yresult = LUAPLUGINDIR;
|
||||
else if (ycmd_name.compare("LOCALEDIR")) yresult = LOCALEDIR;
|
||||
else if (ycmd_name.compare("LOCALEDIR_VAR")) yresult = LOCALEDIR_VAR;
|
||||
else if (ycmd_name.compare("THEMESDIR")) yresult = THEMESDIR;
|
||||
else if (ycmd_name.compare("THEMESDIR_VAR")) yresult = THEMESDIR_VAR;
|
||||
else if (ycmd_name.compare("ICONSDIR")) yresult = ICONSDIR;
|
||||
else if (ycmd_name.compare("ICONSDIR_VAR")) yresult = ICONSDIR_VAR;
|
||||
else if (ycmd_name.compare("LOGODIR")) yresult = LOGODIR;
|
||||
else if (ycmd_name.compare("LOGODIR_VAR")) yresult = LOGODIR_VAR;
|
||||
else if (ycmd_name.compare("PRIVATE_HTTPDDIR")) yresult = PRIVATE_HTTPDDIR;
|
||||
else if (ycmd_name.compare("PUBLIC_HTTPDDIR")) yresult = PUBLIC_HTTPDDIR;
|
||||
else if (ycmd_name.compare("HOSTED_HTTPDDIR")) yresult = HOSTED_HTTPDDIR;
|
||||
else yresult = "";
|
||||
}
|
||||
else if (ycmd_type == "ini-get") {
|
||||
std::string filename, varname, tmp, ydefault, yaccess;
|
||||
ySplitString(ycmd_name, "~", filename, yaccess);
|
||||
|
Reference in New Issue
Block a user