import java.awt.*; import java.awt.event.*; import java.io.*; import javax.sound.sampled.*; import java.applet.*; public class Heliredaktor extends Panel implements ActionListener{ byte[] andmed; byte[] puhver; AudioFormat formaat; Button play=new Button("Mängi"); Button sulge=new Button("Sulge"); Button kopeeri=new Button("Kopeeri"); Button kirjutaYle=new Button("Kirjuta üle"); Button tyhjenda=new Button("Vaikseks"); Margistusala1 ala=new Margistusala1(); Button lae=new Button("Lae fail"); TextField tfLae=new TextField("esimene.wav", 20); Button salvesta=new Button("Salvesta fail"); TextField tfSalvesta=new TextField("salvestis.wav", 20); public Heliredaktor(){ setBackground (Color.black); Panel p=new Panel(); p.add(tyhjenda); p.add(kopeeri); p.add(kirjutaYle); Panel p2=new Panel(new GridLayout(8, 1)); p2.add(play); p2.add(sulge); play.addActionListener(this); sulge.addActionListener(this); Panel alapaneel=new Panel(); alapaneel.add(lae); alapaneel.add(tfLae); alapaneel.add(salvesta); alapaneel.add(tfSalvesta); setLayout(new BorderLayout()); add(p, BorderLayout.NORTH); add(p2, BorderLayout.WEST); add(ala, BorderLayout.CENTER); add(alapaneel, BorderLayout.SOUTH); kopeeri.addActionListener(this); kirjutaYle.addActionListener(this); tyhjenda.addActionListener(this); lae.addActionListener(this); salvesta.addActionListener(this); } public void actionPerformed(ActionEvent e){ if(e.getSource()==play){playFail(); } if(e.getSource()==sulge){sulge(); } if(e.getSource()==lae){laeFail(); } if(e.getSource()==salvesta){salvestaFail(); } if(e.getSource()==tyhjenda){tyhjendaLoik(); } if(e.getSource()==kopeeri){kopeeriLoik(); } if(e.getSource()==kirjutaYle){kirjutaLoikYle(); } } public void playFail(){ try{ AudioInputStream sisse=AudioSystem.getAudioInputStream(new File(tfLae.getText())); AudioFormat f=sisse.getFormat(); SourceDataLine line=(SourceDataLine)AudioSystem.getLine( new DataLine.Info(SourceDataLine.class, f, AudioSystem.NOT_SPECIFIED) ); line.open(); line.start(); int puhvrisuurus=8000; byte[] baidid=new byte[puhvrisuurus]; int loetud=0; while((loetud=sisse.read(baidid, 0, puhvrisuurus))!=-1){ line.write(baidid, 0, loetud); } line.drain(); }catch(Exception viga){ viga.printStackTrace(); } } public void sulge(){ try{ System.exit(0); }catch(Exception viga){ viga.printStackTrace(); } } public void laeFail(){ try{ AudioInputStream sisse=AudioSystem.getAudioInputStream(new File(tfLae.getText())); ByteArrayOutputStream malu=new ByteArrayOutputStream(); int nr=sisse.read(); while(nr!=-1){ //loetakse voo sisu mälupuhvrisse malu.write(nr); nr=sisse.read(); } andmed=malu.toByteArray(); ala.kogupikkus=andmed.length; formaat=sisse.getFormat(); }catch(Exception viga){ viga.printStackTrace(); } } public void salvestaFail(){ try{ AudioInputStream ais=new AudioInputStream( new ByteArrayInputStream(andmed), formaat, andmed.length ); AudioSystem.write(ais, AudioFileFormat.Type.WAVE, new File(tfSalvesta.getText())); }catch(Exception viga){ viga.printStackTrace(); } } public void tyhjendaLoik(){ for(int i=ala.algKaader(); i<=ala.loppKaader(); i++){ andmed[i]=(byte)0; } } public void kopeeriLoik(){ puhver=new byte[ala.loppKaader()-ala.algKaader()]; for(int i=0; i