⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guiinit.m

📁 语音编码
💻 M
字号:
% MATLAB SIMULATION OF FS-1015 LPC-10e
% COPYRIGHT (C) 1996-99 ANDREAS SPANIAS and TED PAINTER
%
% This Copyright applies only to this particular MATLAB implementation
% of the LPC-10e coder.  The MATLAB software is intended only for educational
% purposes.  No other use is intended or authorized.  This is not a public
% domain program and unauthorized distribution to individuals or networks 
% is prohibited. Be aware that use of the standard in any form is goverened
% by rules of the US DoD.  
% This program is free software. It is distributed in the hope that it will
% be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  There is no commitment 
% or even implied commitment on behalf of Andreas Spanias or Ted Painter
% for maintenance or support of this code.
%
% MATLAB is trademark of The Mathworks Inc
%
% ALL DERIVATIVE WORKS MUST INCLUDE THIS COPYRIGHT NOTICE.
%
% ******************************************************************
% GUIINIT
%
% NSA LPC-10 VOICE CODER GRAPHICAL USER INTERFACE (GUI)
%
% 4-28-94
%
% ******************************************************************
%
% DESCRIPTION
%
% Create base window for current GUI phase.
%
% DESIGN NOTES
%
% This function switches on the value of guiPhase:
%   0 = Startup configuration window - Y/N query for runtime graphical output
%   1 = Runtime output window - either graphical plots or text status
%   2 = Termination window with OK button
%
% VARIABLES
%
% INPUTS
%   guiPhase   -   Current phase of GUI operation (start, runtime, termination)
%
% OUTPUTS
%   Creates output window with text and axes, ready for data.
%
% INTERNALS
%   NameStr    -   Output window title string
%   FileStr    -   Output window filename string
%   StatStr    -   Output window status string - frame number
%   EndStr     -   Simulation termination string
%   WSstr      -   White space string for screen formatting
%   L1STR      -   Output window title string
%   L2STR      -   Output window subtitle string
%   PSTR       -   Percent complete string
%   guiPax     -   Object handle percent complete axes
%   f1         -   Object handle for startup window
%   hh         -   Object handle for miscellaneous window objects
%   YesButton  -   Object handle for startup YES button
%   NoButton   -   Object handle for startup NO button
%   OKButton   -   Object handle for OK termination button
%   ss         -   Screen size vector for host machine
%   xorg       -   Host machine screen X axis origin for output window
%   yorg       -   Host machine screen Y axis origin for output window
%   x          -   X coordinates for percentage complete rectangle
%   y          -   Y coordinates for percentage complete rectangle
%   F1POS      -   Output window location in screen pixels
%
% GLOBALS
%   guiState   -   Graphical output or status output mode
%                  0 = status mode (non-interactive), 1 = graphics mode
%   guiF1      -   Output window object handle
%   guiSline   -   Status output text object handle
%   guiIfile   -   Input file name
%   guiOfile   -   Output file name
%   FrameCnt   -   Number of frames processed so far
%
% CONSTANTS
%    L1POS     -   Text line 1 position in output window (pixels)
%    L2POS     -   Text line 2 position in output window (pixels)
%    L3POS     -   Text line 3 position in output window (pixels)
%    PPOS      -   Percent complete bar graph position
%    FILEPOS   -   File name message position
%    ENDPOS    -   Termination message position
%    OKPOS     -   OK button position in termination window
%    YESPOS    -   Yes button position in startup window
%    NOPOS     -   No button position in startup window
%
% ******************************************************************

function guiinit( guiPhase )

% DECLARE GUI GLOBALS
global guiState guiF1 guiSline FrameCnt guiIfile guiOfile;


cWIN = 'k';

% INITIALIZE GRAPHICAL OBJECT POSITIONS
L1POS = [110,300,400,50];
L2POS = [110,270,400,50];
L3POS = [100,210,400,20];
PPOS = [0.15,0.35,0.7,0.05];
FILEPOS = [5,30,600,20];
ENDPOS = [110,150,400,20];
OKPOS = [285,100,50,30];

% COMPUTE WINDOW POSITIONS BASED ON SCREEN DIMENSIONS
ss = get( 0, 'ScreenSize' );
xorg = ( ss(3) - 600 ) / 2;
yorg = ( ss(4) - 400 ) / 2;
F1POS = [ xorg yorg 600 400 ];

% INITIALIZE TEXT OBJECTS
NameStr = 'NSA LPC-10e VOCODER SIMULATION ';
WSstr = '                                                         ';
QueryStr = 'Is graphical output desired?';
EndStr = sprintf( 'LPC-10e Simulation Complete.  Processed %3d Frames.', FrameCnt );
FileStr = sprintf( 'Input File: %12s%sOutput File: %12s', guiIfile, WSstr, guiOfile );
StatStr = sprintf( 'Processing Frame #%4d', FrameCnt );
L1STR = NameStr;
L2STR = 'FEDERAL STANDARD 1015';
PSTR = 'Percent Complete (%)';

% CREATE BASE WINDOW FOR CURRENT PHASE
% 0 : STARTUP PHASE - Y/N QUERY WINDOW
if guiPhase == 0
    cr;
    guiState = 0;

% 1 : RUNTIME PHASE - EITHER TEXTUAL STATUS OR GRAPHICAL DATA DISPLAY
elseif guiPhase == 1

    % CREATE WINDOW AND TEXT OBJECTS
    guiF1 = figure( 'Position', F1POS, 'number', 'off', 'name', ...
                     NameStr, 'resize', 'off', 'Menubar', 'none', 'color', cWIN  );
    clf;
    hh=uicontrol('style','text','string',L1STR,'position', L1POS);
    set(hh,'backg',get(gcf,'color'),'foreg',[1,1,1]-get(gcf,'color'));
    hh=uicontrol('style','text','string',L2STR,'position',L2POS);
    set(hh,'backg',get(gcf,'color'),'foreg',[1,1,1]-get(gcf,'color'));
    hh=uicontrol('style','text','string',FileStr,'position',FILEPOS);
    set(hh,'backg',get(gcf,'color'),'foreg',[1,1,1]-get(gcf,'color'));
    guiSline=uicontrol('style','text','string',StatStr,'position',L3POS);
    set(guiSline,'backg',get(gcf,'color'),'foreg',[1,1,1]-get(gcf,'color'));

    % CREATE COMPLETION BAR GRAPH
    guiPax = axes('position',PPOS);
    x=[ 0,0,0,0 ];
    y=[ 0,1,1,0];
    fill(x,y,'b');
    xlabel(PSTR);
    axis([0,100,0,1.0]);
    set(guiPax,'box','off','yticklabel','');
    hold on
    drawnow;


% 2 : TERMINATION PHASE - INDICATE NUMBER OF FRAMES PROCESSED AND OK BUTTON
else

    % FIRST, CLOSE RUNTIME WINDOW
    close;

    % CREATE TERMINATION WINDOW
    guiF1 = figure( 'Position', F1POS, 'number', 'off', 'name', NameStr, ...
                    'resize', 'off', 'Menubar', 'none', 'color', cWIN  );
    clf;

    % DISPLAY STANDARD VOCODER TEXT MESSAGES
    hh=uicontrol('style','text','string',L1STR,'position', L1POS);
    set(hh,'backg',get(gcf,'color'),'foreg',[1,1,1]-get(gcf,'color'));
    hh=uicontrol('style','text','string',L2STR,'position',L2POS);
    set(hh,'backg',get(gcf,'color'),'foreg',[1,1,1]-get(gcf,'color'));
    hh=uicontrol('style','text','string',FileStr,'position',FILEPOS);
    set(hh,'backg',get(gcf,'color'),'foreg',[1,1,1]-get(gcf,'color'));

    % DISPLAY TERMINATION MESSAGE AND OK BUTTON
    hh=uicontrol('style','text','string',EndStr,'position',ENDPOS);
    set(hh,'backg',get(gcf,'color'),'foreg',[1,1,1]-get(gcf,'color'));
    OKButton = uicontrol('Style','Pushbutton','Position',OKPOS,'Callback',...
    'close;','String','OK');
end



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -