17 mars 2008

Status - Vecka 11

Denna vecka fick vi oväntat mycket gjort trots att vi inte arbetade tillsammans och alla i gruppen hade tentor att skriva.


Jag och Arams uppgift sedan det senaste mötet var att utveckla pluginen för den mediaspelare vi vill kunna styra med gester. Valet gick fort och kan läsas här. I vilket språk pluginen skulle skrivas i bestämde vi också. Valet finns dokumenterat här.


Utvecklingen av pluginen gick oväntat smidigt. Jag bekantade mig men området under veckan och tillsammans med Aram blev vi klara i fredags.


Pluginen fick namnet Wiinamp och är i detta skede designad så att man kan styra Winamp genom att skicka textsträngar till applikationen via kommadoprompten i Windows. Vi valde att endast stöda funktionerna play, pause, next, previous samt volume up och volume down. Dessa var de mest önskade enligt undersökningen jag och Erik utförde tidigare och vi tycker de duger att utgå ifrån. Att lägga till flera är dessutom väldigt lätt. 


Wiinamp använder sig av named pipes för att utbyta information mellan kommandoprompten och Winamp. Följande beskrivning av metoden kommer frånwebblatsen för Microsoft Developer Network:


A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client/server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously. Any process can access named pipes, subject to security checks, making named pipes an easy form of communication between related or unrelated processes. Any process can act as both a server and a client, making peer-to-peer communication possible. As used here, the term pipe server refers to a process that creates a named pipe, and the term pipe client refers to a process that connects to an instance of a named pipe. Named pipes can be used to provide communication between processes on the same computer or between processes on different computers across a network. If the server service is running, all named pipes are accessible remotely. If you intend to use a named pipe locally only, deny access to NT AUTHORITY\NETWORK or switch to local RPC.


För mer info om denna metod besök denna länk. En utvärdering av metoden och andra kandidater vi hade i åtanke kommer att läggas upp på bloggen så småningom. Men kort sagt valde denna metod eftersom det är ett smidigt alternativ eftersom WiiMove kommer att agera server och skicka ut textsträngar till flera olika klienter via en bestämd process.


En del arbete finns kvar att göra för att få WiiMove och Wiinamp utbyta information mellan varandra på samma smidiga sätt som kommandoprompten  och mediaspelaren gör i detta skede. Vi har inte ännu beslutat hur applikationen skall designas för detta ändamål och därför utvecklades Wiinamp till sin nuvarande form. Grovjobbet är dock definitivt redan gjort och att anpassa Wiinamp til WiiMove i ett senare skede tror vi kommer att gå smärtfritt.