]> git.parisson.com Git - teleforma.git/commitdiff
multiple station support
authoryomguy <yomguy@parisson.com>
Thu, 12 Jul 2012 20:58:59 +0000 (22:58 +0200)
committeryomguy <yomguy@parisson.com>
Thu, 12 Jul 2012 20:58:59 +0000 (22:58 +0200)
example/settings.py
teleforma/templates/teleforma/course_conference.html
teleforma/views.py

index 306c939f6bfbc02e969e43b215eda58b9a981036..30b6f6ca0cf6913e9df3e690a80f1fe394d9b427 100644 (file)
@@ -187,4 +187,5 @@ POSTMAN_AUTO_MODERATE_AS = True
 
 #FILE_PROTECTION_METHOD = 'xsendfile'
 
-TELECASTER_CONF = '/etc/telecaster/deefuzzer_mp3.xml'
+TELECASTER_CONF = [{'type':'mp3','conf':'/etc/telecaster/deefuzzer_mp3.xml', 'port':'8000'},
+                   {'type':'webm','conf':'/etc/telecaster/deefuzzer_webm.xml', 'port':'8080'}, ]
index 08c8b071b85482dd392da47bdf6b6d99f28d9b68..48b9980a14e4b27512310a210bce78a83d646c7a 100644 (file)
@@ -39,21 +39,24 @@ jQuery(window).ready(function(){
 </div>
 
 <div class="media">
-
-{% if "video" in mime_type %}
+{% for livestream in livestreams %}
+{% if "webm" == livestream.stream_type %}
 <div class="video">
 <video width="640" height="360" controls autoplay preload="auto">
 <!-- Hello Chrome and Firefox (and Opera?) -->
-<source src="{{ livestream }}" type="{{ mime_type }}" />
+<source src="{{ livestream.url }}" type="video/webm" />
 </video>
 </div>
 
-{% elif "audio" in mime_type %}
+{% elif "mp3" == livestream.stream_type %}
 <div class="audio">
-<iframe width='640' height='200' frameborder='0' scrolling='no' marginheight='0' marginwidth='0' src="{% url telemeta-item-player-simple  media.item.public_id 640 130 %}"></iframe>
+<audio controls autoplay preload="auto">
+<!-- Hello Chrome and Firefox (and Opera?) -->
+<source src="{{ livestream.url }}" type="audio/mpeg" />
+</audio>
 </div>
 {% endif %}
-
+{% endfor %}
 </div>
 
 {% block general_info %}
index e7fb3edb1c291ee180e3e66fcf29e916c56d1424..8686c4867255385e469afabc0c8d17f55e8a710e 100755 (executable)
@@ -41,6 +41,7 @@ from xlwt import Workbook
 
 try:
     from telecaster.models import *
+    from telecaster.tools import *
 except:
     pass
 
@@ -327,14 +328,13 @@ class ConferenceView(DetailView):
         context = super(ConferenceView, self).get_context_data(**kwargs)
         context['all_courses'] = get_courses(self.request.user)
         conference = self.get_object()
-        context['mime_type'] = 'video/webm'
         context['course'] = conference.course
         context['type'] = conference.course_type
         context['notes'] = conference.notes.all().filter(author=self.request.user)
         content_type = ContentType.objects.get(app_label="teleforma", model="conference")
         context['room'] = get_room(name=conference.course.title, content_type=content_type,
                                    id=conference.id)
-        context['livestream'] = conference.livestream.get().url
+        context['livestreams'] = conference.livestream.all()
         return context
 
     @jsonrpc_method('teleforma.conference_stop')
@@ -354,6 +354,7 @@ class ConferenceView(DetailView):
 
 
 class ConferenceRecordView(FormView):
+    "Conference record form : TeleCaster module required"
 
     model = Conference
     form_class = ConferenceForm
@@ -378,14 +379,22 @@ class ConferenceRecordView(FormView):
         self.conference.date_begin = datetime.datetime.now()
         self.conference.public_id = uuid
         self.conference.save()
-        station = Station(conference=self.conference, public_id=uuid)
-        station.setup(settings.TELECASTER_CONF)
-        station.start()
-        station.save()
-        server, c= StreamingServer.objects.get_or_create(host='localhost')
-        stream = LiveStream(conference=self.conference, server=server,
-                            stream_type='webm', streaming=True)
-        stream.save()
+        status = Status()
+        status.get_hosts()
+
+        stations = settings.TELECASTER_CONF
+        for station in stations:
+            type = station['type']
+            conf = station['conf']
+            port = station['port']
+            server, c= StreamingServer.objects.get_or_create(host=status.ip, port=port)
+            station = Station(conference=self.conference, public_id=uuid)
+            station.setup(conf)
+            station.start()
+            station.save()
+            stream = LiveStream(conference=self.conference, server=server,
+                            stream_type=type, streaming=True)
+            stream.save()
         return super(ConferenceRecordView, self).form_valid(form)
 
     @method_decorator(login_required)