FileDocCategorySizeDatePackage
ViewSenderReport.javaAPI DocJMF 2.1.1e4919Mon May 12 12:20:34 BST 2003jmapps.rtp

ViewSenderReport.java

/*
 * @(#)ViewSenderReport.java	1.3 02/08/21
 *
 * Copyright (c) 1996-2002 Sun Microsystems, Inc.  All rights reserved.
 */

package jmapps.rtp;

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.rtp.*;
import javax.media.rtp.rtcp.*;
import javax.media.rtp.event.*;

import com.sun.media.util.JMFI18N;
import com.sun.media.rtp.util.Signed;

import jmapps.ui.*;


public class ViewSenderReport extends JMPanel {

    private SessionManager          mngrSession;
    private SenderReport            reportSender;

    private ViewSourceDescription   panelSrcDescr = null;
    private JMPanel                 panelLabels = null;
    private JMPanel                 panelData = null;
    private Label                   fieldSSRC;
    private Label                   fieldNtpTimestampLsw;
    private Label                   fieldNtpTimestampMsw;
    private Label                   fieldRtpTimestamp;
    private Label                   fieldBytes;
    private Label                   fieldPackets;

    private static final String LABEL_SSRC              = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.report.ssrc" );
    private static final String LABEL_NTP_TIMESTAMP_LSW = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.report.ntptimestamplsw" );
    private static final String LABEL_NTP_TIMESTAMP_MSW = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.report.ntptimestampmsw" );
    private static final String LABEL_RTP_TIMESTAMP     = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.report.rtptimestamp" );
    private static final String LABEL_BYTES             = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.report.bytecount" );
    private static final String LABEL_PACKETS           = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.report.packetcount" );


    public ViewSenderReport ( SessionManager mngrSession, SenderReport reportSender ) {
	    super ();

        this.mngrSession = mngrSession;
        this.reportSender = reportSender;
        try {
            init();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void init () throws Exception {
        JMPanel     panel;
        Label       label;

        this.setLayout ( new BorderLayout(6,6) );
        panel = new JMPanel ( new BorderLayout(6,6) );
        this.add ( panel, BorderLayout.NORTH );

        panelLabels = new JMPanel ( new GridLayout(0,1,0,0) );
        panel.add ( panelLabels, BorderLayout.WEST );
        panelData = new JMPanel ( new GridLayout(0,1,0,0) );
        panel.add ( panelData, BorderLayout.CENTER );

        label = new Label ( LABEL_SSRC );
        panelLabels.add ( label );
        fieldSSRC = new Label ();
        panelData.add ( fieldSSRC );

        label = new Label ( LABEL_NTP_TIMESTAMP_LSW );
        panelLabels.add ( label );
        fieldNtpTimestampLsw = new Label ();
        panelData.add ( fieldNtpTimestampLsw );

        label = new Label ( LABEL_NTP_TIMESTAMP_MSW );
        panelLabels.add ( label );
        fieldNtpTimestampMsw = new Label ();
        panelData.add ( fieldNtpTimestampMsw );

        label = new Label ( LABEL_RTP_TIMESTAMP );
        panelLabels.add ( label );
        fieldRtpTimestamp = new Label ();
        panelData.add ( fieldRtpTimestamp );

        label = new Label ( LABEL_BYTES );
        panelLabels.add ( label );
        fieldBytes = new Label ();
        panelData.add ( fieldBytes );

        label = new Label ( LABEL_PACKETS );
        panelLabels.add ( label );
        fieldPackets = new Label ();
        panelData.add ( fieldPackets );

        panel = new JMPanel ( new BorderLayout(6,6) );
        this.add ( panel, BorderLayout.CENTER );
        panelSrcDescr = new ViewSourceDescription ( reportSender.getSourceDescription() );
        panel.add ( panelSrcDescr, BorderLayout.NORTH );

        updateFields ( reportSender );
    }

    public void updateFields ( SenderReport reportSender ) {
        long    lValue;

        if ( reportSender == null )
            return;

        this.reportSender = reportSender;

        lValue = reportSender.getSSRC ();
        fieldSSRC.setText ( longToString(lValue) );

        lValue = reportSender.getNTPTimeStampLSW ();
        fieldNtpTimestampLsw.setText ( longToString(lValue) );

        lValue = reportSender.getNTPTimeStampMSW ();
        fieldNtpTimestampMsw.setText ( longToString(lValue) );

        lValue = reportSender.getRTPTimeStamp ();
        fieldRtpTimestamp.setText ( longToString(lValue) );

        lValue = reportSender.getSenderByteCount ();
        fieldBytes.setText ( longToString(lValue) );

        lValue = reportSender.getSenderPacketCount ();
        fieldPackets.setText ( longToString(lValue) );
    }

    private String longToString ( long lValue ) {
        if ( lValue < 0 )
            lValue = Signed.UnsignedInt((int)lValue);
        return ( "" + lValue );
    }

}