Www.bang-olufsen.com Et Audio/ Video Framework Et framework for en audio/video applikation baseret på lokale og kilder tilgængelige på 1394 via AV/C protokollen.

Slides:



Advertisements
Lignende præsentationer
Hvordan programmerer man?? STREAM - en model. Programmører arbejder ofte i teams Hver programmør arbejder på sin del af en større helhed.
Advertisements

07 – Kort om OO Introduktion.
1 Pentium IA-32 Maskinarkitekturen Kort resume – uge 5.
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
Artikel præsentation Kenneth Pedersen DESIGN SCIENCE IN INFORMATION SYSTEMS RESEARCH Hevner, A. R., March, S. T., Jinsoo, P. and Ram, S. (2004)
Corporate Governance Chapter 18. AMD: CEO Pay in Public and Private Firms Explain why executives might be paid more to run private companies than these.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Programklasser for bladhus Den efterfølgende beskrivelse er ikke komplet. Der er ikke taget afsæt i use cases, sekvensdiagrammer og operationsbeskrivelser.
Indledende Programmering Uge 5 - Efterår 2006 Om at udvikle korrekte og pålidelige programmer Susanne Lindros.
Stig Irming-Pedersen ASP.NET MVC Partner Copenhagen Software.
Litterært makerspace.
Indledende Programmering Uge 8 - Efterår 2006 Mere om abstraktioner Susanne Lindros.
Opsamling Loops Klassedesign Immutable Lister shallowCopy() Projekt 2 FEN KbP/seminar3: Opsamling.
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
Items 4, 14, 24, 34, 44, 54 Orange gruppe Liv, Jonas, Thorkil, Søren S og Martin D.
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
FEN KbP/seminar2: design21 Kontraktbaseret programmering Seminar 2 Klassedesign: Immutable lister Queue Shallowcopy og alkvantoren.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Uge 14: distribuerede objekter, fjernprocedurekald, RMI Tirsdag: Introduktion Mulige fordele ved distribuerede objekter Introduktion til RMI: - Interfacets.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Forelæsning 7.1 – repetition
Unified Modeling Language
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
DIEB10.1 Kursusgang 10 Oversigt: Sidste kursusgang Eksempler på løsning af opgaven Arkitektur for brugergrænsefladen og for systemet Dokumentation af designet.
Trinvis forfinelse vha. STREAM Systematisk, gradvis udvikling af programmer.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
AV/C Audio/Video Control. AV/C Digital Interface Command Set Kommandsæt til styring af AV udstyr på 1394 seriel bussen ved brug af IEC FCP mekanismen.
Algoritmer og Datastrukturer 1 DAIMI Greylisting Gerth Stølting Brodal Aarhus Universitet.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen, 2003Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
 Jens Bennedsen 2001Multimedie programmering MVC Et mønster for grænseflader.
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
HAVi En kort introduktion til HAVi.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
DOMS IT-stormøde 16 november 2009 Kåre Fiedler Christiansen.
Mikkel deMib Svendsen Duplicate Content & Multiple Site Issue Mikkel deMib Svendsen
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
Dansk HL7 CDA profil til deling af aftaler Data i en aftale
Compositional Design Principles “SemiCiv”
Software Testing Software testing.
Introduktion Presentation of the HARDI 6500 Controller.
Parametrisering En kort introduktion.
Algoritmer og Datastrukturer 1
Smart Data Tool (SDT) In Sales
Præsentationens transcript:

Et Audio/ Video Framework Et framework for en audio/video applikation baseret på lokale og kilder tilgængelige på 1394 via AV/C protokollen

Teknikken kort Applikationen kan afvikles på win2000 og linux maskiner med 1394 kort Implementeret i java Simpelt interface ned mod 1394 implementeret i C Baseret på AV/C protokollen

Baggrund Eksisterende platform – Ca linjer C kode for en AV5 + eget OS + diverse FEP’s – SA/SD Model – Svær at overskue, vedligeholde og skabe varianter OO framework – Basis fra COT projektet – Vi ser det som nødvendigt for at kunne håndtere stigende kompleksitet tiltrække og fastholde medarbejde få gavn af de nyeste værktøjer og forskning

Design Lagt vægt på – Skalerbarhed Nem introduktion af nye kilder – Generalitet og abstraktioner Skal favne flere apparater med forskellig arkitektur – Uafhængighed af infrastruktur Anvendes med flere protokoller

Abstraktioner Kilder (sources) – Kan levere et signal og kontrolleres Sinks (flader) – Kan præsentere et signal og kontrolleres Diverse andre hardware entiteter – Power supply – Signal switch – Display til visning af status og ikoner

Framework

Kilder Beskrives ved interfaces CD, Tuner etc. De konkrete kilder realiseres ved implementation af disse interfaces. Kilder placeret på andre apparater realiseres med proxy objekter

En (simpel) abstrakt CD package avx.source.cd; /** * This interface describes the general methods needed for implementing * CD functionality. */ public interface CD { /** Interface implementation */ public SequenceIterator getAllRemainingSourcePositions(); public int getPlayInfo(); /** Goto specific track on CD. If track not available do nothing */ public void gotoTrack(int trackNumber); public void play(); public void pause(); public void stop(); public void gotoNextSourcePosition(); public void gotoPrevSourcePosition(); } Ud over dette interface skal metoderne i den abstrakte klasse Source også implementeres for at sikre de generelle funktionaliteter, som alle kilder har.

Kilder (et eksempel med cd)

Applikation Formål – Holde styr på netværkets resurser repository med kilde objekter (lokale og remote) som opdateres ved bus reset. – Etablere forbindelse mellem en source og en sink – Præsentere status – Give mulighed for kontrol -> ”UI” – Og lidt mere……

Etablering af forbindelse mellem en source og en sink Dette kan tage tid da hårdvarene skal i spil Implementeret som scenarier der kan udføres i sin egen tråd og dermed ikke blokerer for øvrige aktiviteter. /** Parameters to constructor are Source and Sink to connect source : Source to connect sink : Sink to connect */ public SourceSelectScenario(Source source, UserInterface userInterface, Unit unit) { super(); this.userInterface = userInterface; this.source = source; this.unit = unit; } /** Execute the Scenario */ public Session execute() { Sink sink = userInterface.getSink(); Session result = new Session(); if (!unit.hasSession()) { // Unit has no connections => standby configuration 1 userInterface.setSession(result); result.setUserInterface(userInterface); source.activate(result); sink.activate(); sink.deMute(); } …. Other cases based on current state Det er op til kilden og fladen selv, hvad der skal ske når de aktiveres, så scenariet kan anvendes ved alle opkoblinger

Kontrol (IR) IR kommandoer kommer til central input handler Alle entiteter som kan kontrolleres implementerer et controllable interface ”Åbne tilstande” – Prioriteter, ”Evige” og tidsbestemte Håndteres med en stak, hvor toppen udpeger den øjeblikkelige kontrollerede entitet. public interface Controllable { /** Returns the priority of this controllable. */ public int getPriority (); /** This entry receives commands. The implementing objects decide * what to do with these. the control command to handle, and the UserInterface from * where the command originated */ public void handleControlCommand(int command, UserInput sourceOfCommand); /** This function is called to notify the controllable that it is now * on the top of the UI stack. When the controllable receives this * notification, a typical reaction is to reinstall its associated * adapter(s) in the relevant display(s). */ public void receiveFocus(); }