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

📄 mmisounds.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
//};

//nm static ST_MENU_ITEM VOLUME_MENU_ITEMS[] = {
//nm  { silent,   ST_PICTURE_MENU, VOLUME_ICON_SILENT   },
//nm  { volLow,   ST_PICTURE_MENU, VOLUME_ICON_LOW    },
//nm  { volMedium,  ST_PICTURE_MENU, VOLUME_ICON_MEDIUM   },
//nm  { volHigh,    ST_PICTURE_MENU, VOLUME_ICON_HIGH   },
//nm  { increasing, ST_PICTURE_MENU, VOLUME_ICON_INCREASING }
//nm};


/* Provide a mapping between keys and their associated DTMF tones
*/
//nmstatic const keytonemap[][2] = {
//nm  { KEY_0,       TONES_DTMF_0    },
//nm  { KEY_1,       TONES_DTMF_1    },
//nm  { KEY_2,       TONES_DTMF_2    },
//nm  { KEY_3,       TONES_DTMF_3    },
//nm  { KEY_4,       TONES_DTMF_4    },
//nm  { KEY_5,       TONES_DTMF_5    },
//nm  { KEY_6,       TONES_DTMF_6    },
//nm  { KEY_7,       TONES_DTMF_7    },
//nm  { KEY_8,       TONES_DTMF_8    },
//nm  { KEY_9,       TONES_DTMF_9    },
//nm  { KEY_STAR,    TONES_DTMF_STAR },
//nm  { KEY_HASH,    TONES_DTMF_HASH },
//nm  { KEY_MNUUP,   TONES_DTMF_A    },
//nm  { KEY_MNUDOWN, TONES_DTMF_A    },
//nm  { KEY_LEFT,    TONES_DTMF_B    },
//nm  { KEY_RIGHT,   TONES_DTMF_C    },
//nm  { KEY_CLEAR,   TONES_DTMF_D    },
//nm  { 0,           INVALID_TONE    }
//nm};
//nm
static MfwMnuAttr melody_menuAttrib =
{
    0,
    &melody_menuArea,
    MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu       */
    -1,                                 /* use default font         */
    NULL,                               /* with these items         */
    0                                   /* number of items     */
};
//yq added for voicedial
extern T_MFW_HND voice_win;
extern UBYTE recognize_true;
static void VdPlayCB (void* parameter);
static void VDEnroll_cb (void* parameter);
static void VDUpdate_cb (void* parameter);
static void VDReco_cb (void* parameter);
void PlayVmRecord_cb (void* parameter);
//end yq added 
//Bob added for led blink 01/23
void LedBlinkEvent()
{
    MmiTrace("Bob test LED blink");
    if( FlashSettingData.ledon==0 )
    {
        return;
    }
    //when ledblink is close or Hall is on or incoming call or mobile is charging, then stop blinking
    if( (drvpara.hallstatusflag == 1)||(pwr_Status.charging_state!=0)||(IncallLedisRun)||(ledblinkflag==0) )
    {
        //  if(IncallLedisRun)
        //   {
        //ledblinkflag=0;
        //    }
        timStop(ledblink);
        MmiTraceInt(ledblinkflag);
        MmiTraceInt(drvpara.hallstatusflag);
        MmiTraceInt(IncallLedisRun);
        MmiTraceInt(pwr_Status.charging_state);
        return;
    }
    //MmiTrace("Bob test LED blink with entering");
    if( ledblinkison==1 )
    {
        //reset the led blink timer     	
        timSetTime(ledblink,500);
        //the network is full service
        if( ledblinkflag==1 )
        {
			/* 2004/03/15 sunsj remove */
            //Green_On();
            //if red led is on, close it   Bob 02/18
			/* 2004/03/15 sunsj remove */
            //if( driverFlag&=0x0040 )
                //Red_Off();
        }
        //the network is no service
        else if( ledblinkflag==2 )
        {
			/* 2004/03/15 sunsj remove */
            //Red_On();
            //if green led is on, close it Bob 02/18
			/* 2004/03/15 sunsj remove */
            //if( driverFlag&=0x0020 )
                //Green_Off();
        }
        ledblinkison=0;
    }
    else
    {
        //reset the led blink timer
        timSetTime(ledblink,10000);
        //the network is full service
        if( ledblinkflag==1 )
            Green_Off();
        //the network is no service
		/* 2004/03/15 sunsj remove */
        //else if( ledblinkflag==2 )
        //    Red_Off();
        ledblinkison=1;
    }
    timStart(ledblink);
}
//Bob added for start ledblink 01/23
void ledblink_begin()
{
    ledblinkflag=0;
    ledblink=timCreate(0,2000,(MfwCb)LedBlinkEvent);
}
/*******************************************************************************

                                Private Methods

*******************************************************************************/
USHORT getSoundsReason(void)
{
    return soundReason;
}
/*******************************************************************************

 $Function:     setSoundsReason

 $Description:  Set the reason why the volume settings was invoked. Called to indicated
        that the volume settings is being invoked from Idle or from the incoming
        call screens.

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void setSoundsReason(USHORT reason)
{

    switch( reason )
    {
    case SettingVolume:
        soundReason = SettingVolume;
        break;
    case SoundsNone:
    default:
        soundReason = SoundsNone;
        break;
    }
}
/*******************************************************************************

 $Function:     volMenuItemSelected

 $Description:  A volume menu item has been selected, store the setting into PCM.

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void volMenuItemSelected(void)
{
    volumeSetting2Pcm =TRUE;
}
/*******************************************************************************

 $Function:     getScrollSelectMenuItem

 $Description:  get the scroll/select menu status.

 $Returns:    Status

 $Arguments:  none

*******************************************************************************/
BOOL getScrollSelectMenuItem(void)
{
    if( scrollSelectMenuItem == TRUE )
        return TRUE;
    else
        return FALSE;
}
/*******************************************************************************

 $Function:     clearScrollSelectMenuItem

 $Description:  Reset the scroll/select menu behavior.

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void clearScrollSelectMenuItem(void)
{
    scrollSelectMenuItem=FALSE;
    // soundReason = SoundsNone; MZ this flag cleared when user exits the melody/Volume menu.
    stopPlayingMelody();
}

/*******************************************************************************

 $Function:     soundsSetVolume

 $Description:  Function determines if user is in the Melody/SMS/Alarm ringer menu
        and has selected the vloume settings option.

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void soundsSetVolume(void)
{
    if( soundReason == MelodySelect || soundReason == SettingSMSTone ||
        soundReason == SettingAlarm || soundReason == SettingVolume )
    {
        // Menu items will be selected on scrolling.
        scrollSelectMenuItem = TRUE;
        // store the setting to PCM if volume setting is selected.
        volumeSetting2Pcm=FALSE;
    }
    else
    {
        scrollSelectMenuItem = FALSE;
    }

}
/*******************************************************************************

 $Function:     setSilentModeVolumeOn

 $Description:

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void setSilentModeVolume(void)
{
    stopPlayingMelody();
    oldVolumeSetting = current.volumeSetting;
    current.volumeSetting =0;
    audio_SetAmplf (AUDIO_BUZZER, current.volumeSetting);
}

/*******************************************************************************

 $Function:     setSilentModeVolumeOn

 $Description:

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void restoreSilentModeVolume(void)
{
    stopPlayingMelody();
    current.volumeSetting =oldVolumeSetting;
    audio_SetAmplf (AUDIO_BUZZER, current.volumeSetting);

}

/*******************************************************************************

 $Function:     soundReasonRinger

 $Description:  setup the soundReason to be Ringer Melody settings.

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void soundsVolSilent(void)
{

    FFS_flashData.settings_status |= SettingsSilentMode;
    flash_write();

    stopPlayingMelody();

    if( volumeSetting2Pcm != TRUE )
    {
        current.volumeSetting =0;
        audio_SetAmplf (AUDIO_BUZZER, current.volumeSetting);
        audio_PlaySoundID(AUDIO_BUZZER, current.ringer, 0, AUDIO_PLAY_INFINITE);
    }
    else
    {
        //store setting into PCM
        volumeSetting2Pcm=FALSE;
    }
}
/*******************************************************************************

 $Function:     soundsVolLow

 $Description:  set voulme level to low.

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void soundsVolLow(void)
{
    FFS_flashData.settings_status &= ~SettingsSilentMode;
    flash_write();
    stopPlayingMelody();
    if( volumeSetting2Pcm != TRUE )
    {
        current.volumeSetting =5;
        audio_SetAmplf (AUDIO_BUZZER, current.volumeSetting);
        audio_PlaySoundID(AUDIO_BUZZER, current.ringer, 0, AUDIO_PLAY_INFINITE);
    }
    else
    {
        //store setting into PCM
        volumeSetting2Pcm=FALSE;
    }
}
/*******************************************************************************

 $Function:     soundsVolMedium

 $Description:  set voulme level to Medium

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void soundsVolMedium(void)
{
    FFS_flashData.settings_status &= ~SettingsSilentMode;
    flash_write();
    stopPlayingMelody();
    if( volumeSetting2Pcm != TRUE )
    {
        current.volumeSetting =25;
        audio_SetAmplf (AUDIO_BUZZER, current.volumeSetting);
        audio_PlaySoundID(AUDIO_BUZZER, current.ringer, 0, AUDIO_PLAY_INFINITE);
    }
    else
    {
        //store setting into PCM
        volumeSetting2Pcm=FALSE;
    }

}
/*******************************************************************************

 $Function:     soundsVolHigh

 $Description:  set voulme level to High

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void soundsVolHigh(void)
{
    FFS_flashData.settings_status &= ~SettingsSilentMode;
    flash_write();
    stopPlayingMelody();
    if( volumeSetting2Pcm != TRUE )
    {
        current.volumeSetting =175;
        audio_SetAmplf (AUDIO_BUZZER, current.volumeSetting);
        audio_PlaySoundID(AUDIO_BUZZER, current.ringer, 0, AUDIO_PLAY_INFINITE);
    }
    else
    {
        //store setting into PCM
        volumeSetting2Pcm=FALSE;
    }

}
/*******************************************************************************

 $Function:     soundsVolInc

 $Description:  set voulme level to increasing

 $Returns:    none

 $Arguments:  none

*******************************************************************************/
void soundsVolInc(void)
{
    FFS_flashData.settings_status &= ~SettingsSilentMode;
    flash_write();
    stopPlayingMelody();
    if( volumeSetting2Pcm != TRUE )
    {
        current.volumeSetting = 5;
        audio_SetAmplf (AUDIO_BUZZER, current.volumeSetting);
        audio_PlaySoundID(AUDIO_BUZZER, current.ringer, 0, AUDIO_PLAY_INFINITE);
    }
    else
    {
        //store setting into PCM
        volumeSetting2Pcm=FALSE;

    }


}
/*******************************************************************************

 $Function:     soundReasonRinger

 $Description:  setup the soundReason to be Ringer Melody settings.

 $Returns:    none

⌨️ 快捷键说明

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