CATEGORII DOCUMENTE |
Ingineria sistemelor soft - Raport de faza
Modificarea ceruta:
15. Sa se introduca functia de beep (buzz).
Descrierea implementarii:
a) clase noi
- am adaugat clasa WavePlayer care reda un fisier audio in format .wav.
b) modificari de clase existente
Modificarea clasei FrameMessage:
- am adaugat un buton buzzButton pt functia de buzz
- am adaugat optiunea BUZZ (buzzItem) in meniul popup
- am adaugat functia buzzActionPerformed care trimite un mesaj de tip buzz si reda sunetul corespunzator
- am adaugat clasa BuzzKeyAdapter
Modificarea clasei MainFrame:
- am adaugat functia sendBuzzMessage pt trimiterea mesajelor de tip buzz
- am modificat functia getMessage - la primirea unui mesaj BUZZ reda un sunet
Modificarea clasei Interpreter:
- am adaugat cazul "Message.BUZZ_MESSAGE"
Modificarea clasei Jchat:
- am adaugat functia sendBuzzMessage pt trimiterea mesajelor de tip buzz
Modificarea clasei Message:
- am adaugat tipul de mesaj BUZZ_MESSAGE cu valoarea 'X'
Modificarea clasei MessageParser:
- in functia toBytes() am adaugat cazul BUZZ_MESSAGE pentru msg buzz
- in functia toMessage() am adaugat cazul 'X' pentru mesaje de tip buz
Highlighted Source Code:
--CLASA WavePlayer
package com.jchat;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;
public class WavePlayer extends Thread ;
public WavePlayer(String wavfile)
public WavePlayer(String wavfile, Position p)
public void run()
AudioInputStream audioInputStream = null;
try catch (UnsupportedAudioFileException e1) catch (IOException e1)
AudioFormat format = audioInputStream.getFormat();
SourceDataLine auline = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
try catch (LineUnavailableException e) catch (Exception e)
if (auline.isControlSupported(FloatControl.Type.PAN))
auline.start();
int nBytesRead = 0;
byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
try
} catch (IOException e) finally
}
--CLASA BuzzKeyAdapter
class BuzzKeyAdapter extends KeyAdapter
}
}
--FUNCTIA buzzActionPerformed
private void buzzActionPerformed() catch (PropertyVetoException e)
((FrameMessage) fs[0]).getTextArea().requestFocus();
}
frame.sendPrivateMessage(user, message);
}
FUNCTIA MainFrame.sendBuzzMessage
void sendBuzzMessage(User to, String message)
FUNCTIA Jchat.sendBuzzMessage
void sendBuzzMessage(User to, String message)
-- In CLASA Interpreter
case Message.BUZZ_MESSAGE // buzz message
if (m.getTo().equals(jChat.getThisUser())) else
break
-- In CLASA MessageParser
-- FUNCTIA toMessage():
case 'X' // buzz message
s = new String(b, 1, nb - 1);
tok = new StringTokenizer(s,
if (tok.hasMoreTokens())
if (tok.hasMoreTokens())
if (tok.hasMoreTokens())
text = new String(jChat.getPrivateCipher().decrypt(bb));
} else
}
tok = new StringTokenizer(text, 'n' true
buf = new StringBuffer();
aftertoken = true
while (tok.hasMoreTokens()) else else
}
}
text = buf.toString();
mes = new Message();
mes.setType(Message.BUZZ_MESSAGE
mes.setTo(jChat.getUser(to));
mes.setFrom(jChat.getUser(from));
mes.setText(text);
if (mes.getTo() == null || mes.getFrom() == null
|| mes.getText() == null
break
-- FUNCTIA toBytes():
case Message.BUZZ_MESSAGE
str = 'X' + m.getFrom().getNick() + m.getTo().getNick()
+
f = str.getBytes();
bb = m.getText().getBytes();
cc = bb;
if (m.getTo() != null && m.getTo().getChat().equals(JChat.jChatName
b = new byte f.length + cc.length
for int i = 0; i < f.length; i++)
for int i = 0; i < cc.length; i++)
break
Tipul activitatii este unul din urmatoarele:
citirea documentatiei si a cererii de modificare;
studierea codului sursa;
proiectarea modificarii;
scrierea codului necesar pentru implementarea modificarii cerute;
testarea modificarii;
depanarea si eliminarea erorilor depistate dupa efectuarea modificarii;
scrierea raportului de faza;
alta activitate, specificata in clar.
Materiale de trimis:
acest raport
codul sursa integral
date de test (daca e cazul) sau modalitati de testare
Modalitatea de trimitere:
fisier ZIP de forma: NPFf.zip, unde N este numele, P este prenumele, f este faza.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1825
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved