Resolves #625. Updates handling of recording tuners. (#626)

This commit is contained in:
Denny Sheirer
2019-12-21 09:22:04 -05:00
committed by GitHub
parent 2163d0f822
commit 83e518d503
3 changed files with 37 additions and 64 deletions

View File

@@ -29,13 +29,16 @@ import io.github.dsheirer.record.RecorderManager;
import io.github.dsheirer.sample.Listener;
import io.github.dsheirer.source.tuner.TunerEvent.Event;
import io.github.dsheirer.source.tuner.recording.AddRecordingTunerDialog;
import io.github.dsheirer.source.tuner.recording.RecordingTuner;
import net.miginfocom.swing.MigLayout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
@@ -144,19 +147,45 @@ public class TunerViewPanel extends JPanel
@Override
public void mouseClicked(MouseEvent e)
{
int column = mTunerTable.columnAtPoint(e.getPoint());
if(e.getButton() == MouseEvent.BUTTON1) //Left-Click
{
int column = mTunerTable.columnAtPoint(e.getPoint());
if(column == TunerModel.SPECTRAL_DISPLAY_NEW)
if(column == TunerModel.SPECTRAL_DISPLAY_NEW)
{
int tableRow = mTunerTable.rowAtPoint(e.getPoint());
int modelRow = mTunerTable.convertRowIndexToModel(tableRow);
Tuner tuner = mTunerModel.getTuner(modelRow);
if(tuner != null)
{
mTunerModel.broadcast(new TunerEvent(tuner,
Event.REQUEST_NEW_SPECTRAL_DISPLAY));
}
}
}
else if(e.getButton() == MouseEvent.BUTTON3) //Right-Click
{
int tableRow = mTunerTable.rowAtPoint(e.getPoint());
int modelRow = mTunerTable.convertRowIndexToModel(tableRow);
Tuner tuner = mTunerModel.getTuner(modelRow);
final Tuner tuner = mTunerModel.getTuner(modelRow);
if(tuner != null)
if(tuner instanceof RecordingTuner && tuner.getChannelSourceManager().getTunerChannelCount() == 0)
{
mTunerModel.broadcast(new TunerEvent(tuner,
Event.REQUEST_NEW_SPECTRAL_DISPLAY));
JPopupMenu popupMenu = new JPopupMenu();
JMenuItem removeTunerItem = new JMenuItem("Remove Recording Tuner");
removeTunerItem.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
mTunerModel.removeTuner(tuner);
}
});
popupMenu.add(removeTunerItem);
popupMenu.show(mTunerTable, e.getX(), e.getY());
}
}
}

View File

@@ -30,16 +30,10 @@ import net.miginfocom.swing.MigLayout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileFilter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.io.File;
public class RecordingTunerConfigurationEditor extends TunerConfigurationEditor
{
@@ -48,7 +42,6 @@ public class RecordingTunerConfigurationEditor extends TunerConfigurationEditor
private final static Logger mLog = LoggerFactory.getLogger(RecordingTunerConfigurationEditor.class);
private JTextField mConfigurationName;
private JButton mRecordingChooserButton;
private JLabel mRecordingPath;
private boolean mLoading;
@@ -105,44 +98,7 @@ public class RecordingTunerConfigurationEditor extends TunerConfigurationEditor
add(new JLabel("Name:"));
add(mConfigurationName, "span, wrap");
mRecordingChooserButton = new JButton("Recording");
mRecordingChooserButton.setEnabled(false);
mRecordingChooserButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
final JFileChooser chooser = new JFileChooser();
chooser.setFileFilter(new FileFilter()
{
@Override
public boolean accept(File f)
{
return f.isDirectory() || f.getName().matches(".*.wav");
}
@Override
public String getDescription()
{
return "Baseband Recordings (*.wav)";
}
});
int returnVal = chooser.showOpenDialog(RecordingTunerConfigurationEditor.this);
if (returnVal == JFileChooser.APPROVE_OPTION)
{
File file = chooser.getSelectedFile();
if(file != null)
{
mRecordingPath.setText(file.getAbsolutePath());
save();
}
}
}
});
add(mRecordingChooserButton);
add(new JLabel("File:"));
mRecordingPath = new JLabel();
add(mRecordingPath);
}
@@ -156,11 +112,6 @@ public class RecordingTunerConfigurationEditor extends TunerConfigurationEditor
{
mConfigurationName.setEnabled(enabled);
}
if(mRecordingChooserButton.isEnabled() != enabled)
{
mRecordingChooserButton.setEnabled(enabled);
}
}
@Override

View File

@@ -185,14 +185,7 @@ public class RecordingTunerController extends TunerController
@Override
public void setFrequency(long frequency) throws SourceException
{
if(hasBufferListeners())
{
mLog.debug("Set frequency [" + frequency + "] request ignored");
}
else
{
super.setFrequency(frequency);
}
mLog.debug("Set frequency [" + frequency + "] request ignored");
}
/**