add liquidsoap output models and configuration
This commit is contained in:
parent
190da4fd4f
commit
8911f90875
|
@ -1,3 +1,31 @@
|
|||
from django.db import models
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
import aircox.programs.models as programs
|
||||
|
||||
|
||||
class Output (models.Model):
|
||||
# Note: we don't translate the names since it is project names.
|
||||
Type = {
|
||||
'jack': 0x00,
|
||||
'alsa': 0x01,
|
||||
'icecast': 0x02,
|
||||
}
|
||||
|
||||
station = models.ForeignKey(
|
||||
programs.Station,
|
||||
verbose_name = _('station'),
|
||||
)
|
||||
type = models.SmallIntegerField(
|
||||
_('output type'),
|
||||
choices = [ (y, x) for x,y in Type.items() ],
|
||||
blank = True, null = True
|
||||
)
|
||||
settings = models.TextField(
|
||||
_('output settings'),
|
||||
help_text = _('list of comma separated params available; '
|
||||
'this is put in the output config as raw text'),
|
||||
blank = True, null = True
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
{% comment %}
|
||||
A station has multiple sources:
|
||||
- dealer: a controlled playlist playing once each track, that reloads on file
|
||||
change. This is used for scheduled sounds.
|
||||
- streams: a rotate source with all playlists
|
||||
- single: security song
|
||||
{% endcomment %}
|
||||
def make_station_{{ controller.id }} () = \
|
||||
{# dealer #}
|
||||
{% with source=controller.dealer %}
|
||||
{% if source %}
|
||||
dealer = interactive_source('{{ source.id }}', playlist.once( \
|
||||
reload_mode='watch', \
|
||||
"{{ source.path }}", \
|
||||
)) \
|
||||
\
|
||||
dealer_on = interactive.bool("{{ source.id }}_on", false) \
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
\
|
||||
{# streams #}
|
||||
streams = interactive_source("streams", rotate([ \
|
||||
{% for source in controller.streams.values %}
|
||||
{% with info=source.stream_info %}
|
||||
{% if info.delay %}
|
||||
delay({{ info.delay }}., stream("{{ source.id }}", "{{ source.path }}")), \
|
||||
{% elif info.begin and info.end %}
|
||||
at({ {{info.begin}}-{{info.end}} }, stream("{{ source.id }}", "{{ source.path }}")), \
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
|
||||
{% for source in controller.streams.values %}
|
||||
{% if not source.stream_info %}
|
||||
stream("{{ source.id }}", "{{ source.path }}"), \
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
])) \
|
||||
\
|
||||
{# station #}
|
||||
interactive_source ( \
|
||||
"{{ controller.id }}", \
|
||||
fallback(track_sensitive = false, [ \
|
||||
at(dealer_on, dealer), \
|
||||
streams, \
|
||||
{% if controller.station.fallback %}
|
||||
single("{{ controller.station.fallback }}"), \
|
||||
{% else %}
|
||||
blank(), \
|
||||
{% endif %}
|
||||
]) \
|
||||
) \
|
||||
end \
|
||||
|
|
@ -462,14 +462,9 @@ class Program (Nameable):
|
|||
Make sur the program's dir exists (and optionally subdir). Return True
|
||||
if the dir (or subdir) exists.
|
||||
"""
|
||||
path = self.path
|
||||
if not os.path.exists(path):
|
||||
os.mkdir(path)
|
||||
|
||||
if subdir:
|
||||
path = os.path.join(path, subdir)
|
||||
if not os.path.exists(path):
|
||||
os.mkdir(path)
|
||||
path = os.path.join(self.path, subdir) if subdir else \
|
||||
self.path
|
||||
os.makedirs(path, exist_ok = True)
|
||||
return os.path.exists(path)
|
||||
|
||||
def find_schedule (self, date):
|
||||
|
|
Loading…
Reference in New Issue
Block a user