Tuesday, July 05, 2005

Coding Objects

Well, as said long ago, I am writing my own program to control the computer placed in my car. It is written almost exclusively in vb.net with a few classes written in C#. I am very object oriented in my coding style. Everything is represented by string objects that wrap the waned functionality into an easy to use object. Here I will discuss a few of the classes and how they are designed.
The following is the layout for my description:

  • Project
    • Class
      • Object/Functionality
Well, here it goes...
  • Car Amp - Contains all the forms for the entire application
    • frmAddress
      • In the future will be a complete address book with Sync with MS Outlook 1/2 complete
    • frmAlbum
      • Access Music library via album
    • frmArtist
      • Access Music library via artist
    • frmEmail
      • Send/Recieve Email
    • frmExit
      • Closing menu with options to exit, shutdown, hibernate, or suspend
    • frmLauncher
      • Launch external application
    • frmMapPoint
      • Give embedded control to MamPoint maps
    • frmMenu
      • Main menu to access all other forms
    • frmMiniMode
      • Small screen mode
    • frmPictureViewer
      • Integrated Picture slideshow
    • frmPlaylist
      • Edit current playlist
    • frmProgress
      • Custom progress bar for loading unknow size/length item
    • frmSkin
      • Select the current skin to be used
    • frmSync
      • Control all aspects of the file sync options
    • frmVoiceCommands
      • Edit voice rec. preferences
    • frmWeather
      • Recieve weather updates via web
    • Main
      • Init of all items
    • PluginInterfaceImplementation
      • .Net Remoting Remote Control Interface
  • Custom Controls
    • Clock
      • Custom Clock Control
    • PictureButton
      • Custom picture box to be a skinnable button with mouse down effects
    • TextButtom
      • Custom buttom with mouse down effects
  • FileSync
    • FileFunctions
      • Handles file copy other misc functions
    • FileLoctions
      • Class to hold sync source, destination and other options
    • FileSync
      • FileSync object
    • FileSyncOptions
      • Options for the sync class
    • FileSycWatcher
      • Custom file watcher to watch for a drive to be come available
  • GeneralClasses
    • DeleteFuctions
      • Delete files/directories even if readonly
    • FreeMemory
      • Gets the amount of free main memory
    • Log
      • Advanced Logging Class
    • SpeedTimer
      • Used to time different functions for speed performance
  • ImagePoints
    • Bacis Skin Utility
  • KBTextbox
    • Custom Textbox that uses the custom buttom to show an onscreen keybpard when a textbox is clicked on
  • Mp3Tag (C#)
    • Used to modify mp3 tags
  • Music File
    • AudioCD
      • USed to play Audio CD's put in the cdrom
    • DirectXMusic
      • Class used to handle the directx playing of a audio file
    • DirectXVideo
      • Class used to handle the directx playing of a video file
    • Player
      • Media player Logic that combines all teh other classes in this project
    • Playlist
      • Contains a list of Song objects and has various functions
    • Song
      • Object of a single song
    • State
      • The current state of a player instance
  • PluginInterface
    • ICarPlugin
      • Contains the .Net Remoting interface for remote control of the Car Media Player
  • PluginTest
    • Test Plugin implementing the ICarPlugin interface
  • SpeechEngine
    • SpeakText
      • Wrapper for SAPI text to speech
    • SpeechEngine
      • Controls the voice detection and handles the events
  • XmlLibFunctions
    • Used to create Xml Playlists and the xml catalog of all music files
    • Contains advanced xml file access functions
  • RemoteCarWS
    • Proof of concept web service able to control the car player over the ICarPlugin interface
    • EX: WebPage -> RemoteCarWS -> ICarPlugin -> CarPlayer
To be added from other project
  • CarRipper
    • Rips CD inserted into Mp3 Format
    • FreeDb Lookup on CD info
  • Mp3 Retaggings service
    • Creates a fingerprint of an mp3 song, looks up the tag information and corrects it on the local machine.


Well, these features are all between 90-100% complete. When I stared this I didn't expect it to turn out so long but it helsp to explain how the application is structured and a few things that will be added in the future.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home