Upload
alfred-arnold
View
214
Download
1
Embed Size (px)
Citation preview
Nova Media CenterNova Media Center
Anthony Romano
Christopher Nolan
Mr. Edward Char
Anthony Romano
Christopher Nolan
Mr. Edward Char
What is a Media Center?What is a Media Center?
Combination of several home theatre devices DVD Player CD Player TiVO Computer
Two main components Hardware (PC) Software
Combination of several home theatre devices DVD Player CD Player TiVO Computer
Two main components Hardware (PC) Software
Project GoalsProject Goals
Software component only Small file size Modular Object Oriented design Consistent interface Support all common media types Extensible
Software component only Small file size Modular Object Oriented design Consistent interface Support all common media types Extensible
Design PrinciplesDesign Principles
Abstraction Inheritance Encapsulation Reflection Serialization
Abstraction Inheritance Encapsulation Reflection Serialization
Design ToolsDesign Tools
Microsoft Visual Studio .NET 2003 .NET 1.1 C# Subversion
Microsoft Visual Studio .NET 2003 .NET 1.1 C# Subversion
Program StructureProgram Structure
Main Executable Main Library (libnovamc) External Plugins
Interface Device
Main Executable Main Library (libnovamc) External Plugins
Interface Device
libnovamclibnovamc
Contains several types of classes Files Database Primitives Interfaces GUI
NovaPanels Objects Widgets
Parsers Utilities
Contains several types of classes Files Database Primitives Interfaces GUI
NovaPanels Objects Widgets
Parsers Utilities
FilesFiles
An object representation of a media file Contains basic information about file Types
Dir Artist Album MediaFile
MusicFile VideoFile PictureFile
An object representation of a media file Contains basic information about file Types
Dir Artist Album MediaFile
MusicFile VideoFile PictureFile
DatabaseDatabase
Contains a collection of MediaFiles Contains functions to search, add, and
remove items from database Serializes as a binary file on hard drive
Contains a collection of MediaFiles Contains functions to search, add, and
remove items from database Serializes as a binary file on hard drive
PrimitivesPrimitives
Abstract representations of non-File types For example
TV Channel DVD Stream TV Stream TV Show
Abstract representations of non-File types For example
TV Channel DVD Stream TV Stream TV Show
InterfacesInterfaces
Common interfaces for system wide operations IControl - Interface for plugins to play media.
Functions such as Play, Pause, NextProperties such as Duration and Size
IModule - Interface for a plugin to be loaded and recognized by program
Common interfaces for system wide operations IControl - Interface for plugins to play media.
Functions such as Play, Pause, NextProperties such as Duration and Size
IModule - Interface for a plugin to be loaded and recognized by program
GUIGUI
Libraries to create the entire GUI of the system Widgets such as buttons, check boxes, drop
down menus Simple objects such as on screen keyboard, on
screen display, message boxes and error boxes Complex objects such as panels
Libraries to create the entire GUI of the system Widgets such as buttons, check boxes, drop
down menus Simple objects such as on screen keyboard, on
screen display, message boxes and error boxes Complex objects such as panels
ParsersParsers
Parse external sources and save as objects Examples:
Amazon IMDB (Internet Movie DataBase) Shoutcast (Internet Radio) Weather (Yahoo! Weather)
Parse external sources and save as objects Examples:
Amazon IMDB (Internet Movie DataBase) Shoutcast (Internet Radio) Weather (Yahoo! Weather)
UtilitiesUtilities
Basic utilities used throughout the program Texture Engine Playlist Handler History Manager Other basic utilities
Basic utilities used throughout the program Texture Engine Playlist Handler History Manager Other basic utilities
PluginsPlugins
Interface Audio Plugin Video Plugin TV Plugin Weather Plugin Pictures Plugin
Device CD Player DVD Player
Interface Audio Plugin Video Plugin TV Plugin Weather Plugin Pictures Plugin
Device CD Player DVD Player
Main ExecutableMain Executable
Create a panel to interact with the plugins Dynamically load the plugins in the plugins
folder Display the plugins as a menu and
instantiate other utilities
Create a panel to interact with the plugins Dynamically load the plugins in the plugins
folder Display the plugins as a menu and
instantiate other utilities
Feature ListFeature List Control currently playing media (pause, skip, etc) Create, manage, save and load playlists Interface with external devices Database of all media for searching and fast access Get external information on files from Internet Listen to Internet Radio Slide Show pictures Pause and record TV View a TV Guide from internet Change program’s theme Add and remove plugins
Control currently playing media (pause, skip, etc) Create, manage, save and load playlists Interface with external devices Database of all media for searching and fast access Get external information on files from Internet Listen to Internet Radio Slide Show pictures Pause and record TV View a TV Guide from internet Change program’s theme Add and remove plugins
Testing PlanTesting Plan
Iterative development cycle Several beta testers
Family Friends
Iterative development cycle Several beta testers
Family Friends
Questions?Questions?
Questions?Questions?