import java.awt.*; import java.awt.event.*; import java.io.*; import javax.sound.sampled.*; public class Digiheliredaktor1 extends Panel implements ActionListener{ byte[] andmed; byte[] puhver; AudioFormat formaat; 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 Digiheliredaktor1(){ Panel p=new Panel(); p.add(tyhjenda); p.add(kopeeri); p.add(kirjutaYle); Panel alapaneel=new Panel(); alapaneel.add(lae); alapaneel.add(tfLae); alapaneel.add(salvesta); alapaneel.add(tfSalvesta); setLayout(new BorderLayout()); add(p, BorderLayout.NORTH); 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()==lae){laeFail(); } if(e.getSource()==salvesta){salvestaFail(); } if(e.getSource()==tyhjenda){tyhjendaLoik(); } if(e.getSource()==kopeeri){kopeeriLoik(); } if(e.getSource()==kirjutaYle){kirjutaLoikYle(); } } 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