00001 /******************************************************************************* 00002 * Copyright (c) 1999-2008 ACCESS CO., LTD. All rights reserved. 00003 * Copyright (c) 2006 Palmsource, Inc. (an Access company). All rights reserved. 00004 *******************************************************************************/ 00005 00029 #ifndef MEDIA_SESSION_H 00030 #define MEDIA_SESSION_H 00031 00032 #include "media_defs.h" 00033 00034 #ifdef __cplusplus 00035 extern "C" { 00036 #endif 00037 00038 00046 /**************************************************************************** 00047 * Structures 00048 *****************************************************************************/ 00049 00055 typedef struct _AlpMMSessionEvent { 00056 AlpMMSessionID session_ref; 00057 AlpMMEvent event_code; 00058 int32_t event_cause; 00059 int64_t position; 00060 int64_t duration; 00061 int64_t total_estimated_time; 00062 int64_t total_recorded_size; 00063 } AlpMMSessionEvent; 00064 00065 00070 typedef struct _AlpMMSessionGrabEvent { 00071 void * buffer; 00072 size_t buffersize; 00073 int64_t timestamp; 00074 int32_t width; 00075 int32_t height; 00076 } AlpMMSessionGrabEvent; 00077 00087 /**************************************************************************** 00088 * Typedefs 00089 *****************************************************************************/ 00090 00102 typedef void (* AlpMMSessionCallbackFn) (const AlpMMSessionEvent *event, void * userdata); 00103 00104 00117 typedef void (*AlpMMSessionGrabCallbackFn) (const AlpMMSessionGrabEvent *grabevent, void *userdata); 00118 00119 00128 /**************************************************************************** 00129 * Enums 00130 *****************************************************************************/ 00131 00133 00135 typedef enum 00136 { 00138 ALP_MM_TYPE_FILE = (ALP_MM_FILE | 0x000001) , 00139 00141 ALP_MM_TYPE_FILELIST, 00142 00144 ALP_MM_TYPE_NETSTREAM, 00145 00147 ALP_MM_TYPE_MEMSTREAM, 00148 00150 ALP_MM_TYPE_AUDIO_RENDER, 00151 00153 ALP_MM_TYPE_VIDEO_RENDER, 00154 } AlpMMSourceType; 00155 00156 00158 00160 typedef enum 00161 { 00163 ALP_MM_FLASH_MODE_OFF = (ALP_MM_SOURCE_CAMERA | 0x000001), 00164 00166 ALP_MM_FLASH_MODE_AUTO, 00167 00169 ALP_MM_FLASH_MODE_FRONT, 00170 00172 ALP_MM_FLASH_MODE_SLOW, 00173 00175 ALP_MM_FLASH_MODE_REAR, 00176 00177 } AlpCameraFlashMode; 00178 00180 00181 typedef enum 00182 { 00184 ALP_MM_FOCUS_AUTO = (ALP_MM_SOURCE_CAMERA | 0x000010), 00185 00187 ALP_MM_FOCUS_ONE, 00188 00190 ALP_MM_FOCUS_TWO, 00191 00193 ALP_MM_FOCUS_FOUR, 00194 00196 ALP_MM_FOCUS_EIGHT, 00197 00199 ALP_MM_FOCUS_INFINITY = 0xffffff, 00200 00201 } AlpCameraFocusMode; 00202 00204 00206 typedef enum 00207 { 00209 ALP_MM_WHITE_BALANCE_AUTO = (ALP_MM_SOURCE_CAMERA | 0x000020), 00210 00212 ALP_MM_WHITE_BALANCE_INCANDESCENT, 00213 00215 ALP_MM_WHITE_BALANCE_FLUORESCENT, 00216 00218 ALP_MM_WHITE_BALANCE_SUNSHINE, 00219 00221 ALP_MM_WHITE_BALANCE_CLOUDS 00222 00223 } AlpCameraWhiteBalanceMode; 00224 00226 00227 typedef enum 00228 { 00230 ALP_MM_COLOR_EFFECT_OFF = (ALP_MM_SOURCE_CAMERA | 0x000030), 00231 00233 ALP_MM_COLOR_EFFECT_NATURAL, 00234 00236 ALP_MM_COLOR_EFFECT_VIVID, 00237 00239 ALP_MM_COLOR_EFFECT_SEPIA, 00240 00242 ALP_MM_COLOR_EFFECT_REVERSAL, 00243 00245 ALP_MM_COLOR_EFFECT_COLD, 00246 00248 ALP_MM_COLOR_EFFECT_BLACK_AND_WHITE 00249 00250 }AlpCameraColorEffect; 00251 00253 00254 typedef enum 00255 { 00257 ALP_MM_SOURCE_CAMERA_APERTURE = (ALP_MM_SOURCE_CAMERA | 0x000040L), 00258 00260 ALP_MM_SOURCE_CAMERA_EXPOSURE, 00261 00263 ALP_MM_SOURCE_CAMERA_SCALE, 00264 00266 ALP_MM_SOURCE_CAMERA_FLASH_MODE, 00267 00269 ALP_MM_SOURCE_CAMERA_FOCUS, 00270 00272 ALP_MM_SOURCE_CAMERA_RED_EYE_REDUCTION, 00273 00275 ALP_MM_SOURCE_CAMERA_ISO_SENSITIVITY, 00276 00278 ALP_MM_SOURCE_CAMERA_WHITE_BALANCER, 00279 00281 ALP_MM_SOURCE_CAMERA_BRIGHTNESS, 00282 00284 ALP_MM_SOURCE_CAMERA_ZOOM, 00285 00287 ALP_MM_SOURCE_CAMERA_FRAME_RATE, 00288 00291 ALP_MM_SOURCE_CAMERA_RESOLUTION, 00292 00294 ALP_MM_SOURCE_CAMERA_COLOR_EFFECT, 00295 00297 ALP_MM_SOURCE_CAMERA_WIDTH, 00298 00300 ALP_MM_SOURCE_CAMERA_HEIGHT 00301 00302 }AlpCameraPropertyKey; 00303 00305 typedef enum 00306 { 00308 ALP_MM_FORMATKEY_RAW_AUDIO_TYPE = (ALP_MM_FORMATKEY_RAW_AUDIO | 0x000001L), 00309 00311 ALP_MM_FORMATKEY_RAW_AUDIO_BYTE_ORDER, 00312 00314 ALP_MM_FORMATKEY_RAW_AUDIO_BITS, 00315 00318 ALP_MM_FORMATKEY_RAW_AUDIO_CHANNELS, 00319 00321 ALP_MM_FORMATKEY_RAW_AUDIO_SAMPLERATE, 00322 00324 ALP_MM_FORMATKEY_RAW_AUDIO_BIT_RATE 00325 }AlpRawAudioPropertyKey; 00326 00328 typedef enum 00329 { 00331 ALP_MM_AUDIO_AMR_BITRATE_MR475 = 4750, 00332 00334 ALP_MM_AUDIO_AMR_BITRATE_MR515 = 5150, 00335 00337 ALP_MM_AUDIO_AMR_BITRATE_MR59 = 5900, 00338 00340 ALP_MM_AUDIO_AMR_BITRATE_MR67 = 6700, 00341 00343 ALP_MM_AUDIO_AMR_BITRATE_MR74 = 7400, 00344 00346 ALP_MM_AUDIO_AMR_BITRATE_MR795 = 7950, 00347 00349 ALP_MM_AUDIO_AMR_BITRATE_MR102 = 10200, 00350 00352 ALP_MM_AUDIO_AMR_BITRATE_MR122 = 12200 00353 }AlpAmrBitRate; 00354 00356 typedef enum 00357 { 00359 ALP_MM_RAW_AUDIO_INT8 = 0x01, 00360 00362 ALP_MM_RAW_AUDIO_UINT8, 00363 00365 ALP_MM_RAW_AUDIO_INT16, 00366 00368 ALP_MM_RAW_AUDIO_INT32, 00369 00371 ALP_MM_RAW_AUDIO_FLOAT, 00372 00374 ALP_MM_RAW_AUDIO_SIZE_MASK = 0x0f 00375 }AlpRawAudioTypes; 00376 00378 typedef enum 00379 { 00381 ALP_MM_RAW_AUDIO_STEREO = 0x02, 00382 00384 ALP_MM_RAW_AUDIO_MONO = 0x01, 00385 00387 ALP_MM_RAW_AUDIO_DOLBY_PRO_LOGIC_STEREO = 0x12, 00388 00390 ALP_MM_RAW_AUDIO_DOLBY_5_1_SURROUND = 0x26, 00391 00393 ALP_MM_RAW_AUDIO_DTS_SURROUND = 0x36, 00394 00396 ALP_MM_RAW_AUDIO_CHANNEL_COUNT_MASK = 0x0f 00397 }AlpRawAudioChannel; 00398 00400 typedef enum 00401 { 00403 ALP_MM_FORMATKEY_RAW_VIDEO_COLOR_SPACE = (ALP_MM_FORMATKEY_RAW_VIDEO | 0x000001), 00404 00406 ALP_MM_FORMATKEY_RAW_VIDEO_FRAME_RATE, 00407 00409 ALP_MM_FORMATKEY_RAW_VIDEO_BIT_RATE, 00410 00412 ALP_MM_FORMATKEY_RAW_VIDEO_RECT 00413 }AlpRawVideoPropertyKey; 00414 00416 typedef enum 00417 { 00419 ALP_MM_RAW_VIDEO_YCBCR420_PLANAR = 0x000010, 00420 00422 ALP_MM_RAW_VIDEO_YCBCR422_PLANAR, 00423 00425 ALP_MM_RAW_VIDEO_YCBCR420_PACKET, 00426 00428 ALP_MM_RAW_VIDEO_YCBCR422_PACKET, 00429 00431 ALP_MM_RAW_VIDEO_YCBCR444, 00432 00434 ALP_MM_RAW_VIDEO_RGB888, 00435 00437 ALP_MM_RAW_VIDEO_RGB565, 00438 00440 ALP_MM_RAW_VIDEO_RGB555, 00441 00443 ALP_MM_RAW_VIDEO_BGR888, 00444 00446 ALP_MM_RAW_VIDEO_BGR565, 00447 00449 ALP_MM_RAW_VIDEO_BGR555, 00450 00452 ALP_MM_RAW_VIDEO_RAWRGB, 00453 00455 ALP_MM_RAW_VIDEO_OTHER_FMT 00456 }AlpRawVideoColorSpace; 00457 00459 typedef enum 00460 { 00462 ALP_MM_VIDEO_RSL_SXGA = 0x000040, 00463 00465 ALP_MM_VIDEO_RSL_VGA, 00466 00468 ALP_MM_VIDEO_RSL_QVGA, 00469 00471 ALP_MM_VIDEO_RSL_QQVGA, 00472 00474 ALP_MM_VIDEO_RSL_CIF, 00475 00477 ALP_MM_VIDEO_RSL_QCIF, 00478 00480 ALP_MM_VIDEO_RSL_QQCIF 00481 }AlpVideoResolution; 00482 00484 typedef enum 00485 { 00487 ALP_MM_FILE_FORMAT_MP3 = (ALP_MM_FILE_FORMAT | 0x000001), 00488 00490 ALP_MM_FILE_FORMAT_MP4, 00491 00493 ALP_MM_FILE_FORMAT_3GPP, 00494 00496 ALP_MM_FILE_FORMAT_AVI, 00497 00499 ALP_MM_FILE_FORMAT_RM, 00500 00502 ALP_MM_FILE_FORMAT_AMR, 00503 00505 ALP_MM_FILE_FORMAT_ASF, 00506 00508 ALP_MM_FILE_FORMAT_WAV, 00509 00511 ALP_MM_FILE_FORMAT_MIDI_MTHd, 00512 00514 ALP_MM_FILE_FORMAT_MIDI_XMF, 00515 00517 ALP_MM_FILE_FORMAT_MIDI_IMY, 00518 00520 ALP_MM_FILE_FORMAT_OGG, 00521 00523 ALP_MM_FILE_FORMAT_JPEG, 00524 00526 ALP_MM_FILE_FORMAT_BMP, 00527 00529 ALP_MM_FILE_FORMAT_WBMP, 00530 00532 ALP_MM_FILE_FORMAT_PNG, 00533 00535 ALP_MM_FILE_FORMAT_GIF, 00536 00538 ALP_MM_FILE_FORMAT_TIFF, 00539 00541 ALP_MM_FILE_FORMAT_WMA, 00542 00544 ALP_MM_FILE_FORMAT_WMV, 00545 00547 ALP_MM_FILE_FORMAT_H263, 00548 00550 ALP_MM_FILE_FORMAT_H264, 00551 00553 ALP_MM_FILE_FORMAT_RAW_AUDIO, 00554 00556 ALP_MM_FILE_FORMAT_RAW_VIDEO 00557 }AlpMediaFileFormatType; 00558 00560 00561 typedef enum 00562 { 00564 ALP_MM_FILE_CONTENT_ALBUM = (ALP_MM_FILE_CONTENT | 0x000001), 00565 00567 ALP_MM_FILE_CONTENT_ARTIST, 00568 00570 ALP_MM_FILE_CONTENT_DURATION, 00571 00573 ALP_MM_FILE_CONTENT_GENRE, 00574 00576 ALP_MM_FILE_CONTENT_TITLE, 00577 00579 ALP_MM_FILE_CONTENT_TRACK_NUMBER, 00580 00582 ALP_MM_FILE_CONTENT_REVISION, 00583 00585 ALP_MM_FILE_CONTENT_REMARK 00586 }AlpMediaFileContentKeys; 00587 00589 typedef enum { 00591 ALP_MM_AUDIO_CODEC_RAW = (ALP_MM_AUDIO_CODEC | 0x000001), 00592 00594 ALP_MM_AUDIO_CODEC_MSADPCM, 00595 00597 ALP_MM_AUDIO_CODEC_DVIADPCM, 00598 00600 ALP_MM_AUDIO_CODEC_OGG_VORBIS, 00601 00603 ALP_MM_AUDIO_CODEC_AMR_NB, 00604 00606 ALP_MM_AUDIO_CODEC_AMR_WB, 00607 00609 ALP_MM_AUDIO_CODEC_G711, 00610 00612 ALP_MM_AUDIO_CODEC_G722, 00613 00615 ALP_MM_AUDIO_CODEC_G723, 00616 00618 ALP_MM_AUDIO_CODEC_G723_1, 00619 00621 ALP_MM_AUDIO_CODEC_G726, 00622 00624 ALP_MM_AUDIO_CODEC_G728, 00625 00627 ALP_MM_AUDIO_CODEC_G729, 00628 00630 ALP_MM_AUDIO_CODEC_AAC, 00631 00633 ALP_MM_AUDIO_CODEC_MP3, 00634 00636 ALP_MM_AUDIO_CODEC_MIDI 00637 }AlpAudioCodecs; 00638 00640 typedef enum { 00642 ALP_MM_VIDEO_CODEC_RAW = (ALP_MM_VIDEO_CODEC | 0x000001), 00643 00645 ALP_MM_VIDEO_CODEC_MPEG4, 00646 00648 ALP_MM_VIDEO_CODEC_3GPP, 00649 00651 ALP_MM_VIDEO_CODEC_H263, 00652 00653 //theora video format 00654 ALP_MM_VIDEO_CODEC_OGG_THEORA, 00655 00657 ALP_MM_VIDEO_CODEC_REAL8, 00658 00660 ALP_MM_VIDEO_CODEC_REAL9, 00661 00663 ALP_MM_VIDEO_CODEC_REAL10, 00664 00666 ALP_MM_VIDEO_CODEC_DIVX5, 00667 00669 ALP_MM_VIDEO_CODEC_XVID 00670 }AlpVideoCodecs; 00671 00673 typedef enum 00674 { 00676 ALP_MM_STILL_CODEC_JPEG = (ALP_MM_STILL_CODEC | 0x000001), 00677 00679 ALP_MM_STILL_CODEC_BMP, 00680 00682 ALP_MM_STILL_CODEC_PNG, 00683 00685 ALP_MM_STILL_CODEC_GIF 00686 }AlpStillImageCodecs; 00687 00689 typedef enum 00690 { 00692 ALP_MM_VIDEO_CODEC_TYPE = (ALP_MM_VIDEO_CODEC | 0x000040), 00693 00695 ALP_MM_AUDIO_CODEC_TYPE, 00696 00698 ALP_MM_STILL_CODEC_TYPE 00699 }AlpCodecProperyKey; 00700 00701 00703 typedef enum 00704 { 00706 ALP_MM_SESSION_CLASS_RECORD = (ALP_MM_SESSION_CLASS | 0x000001), 00707 00709 ALP_MM_SESSION_CLASS_PLAYBACK, 00710 }AlpMMSessionClassID; 00711 00712 00714 00716 typedef enum 00717 { 00719 ALP_MM_SESSION_CTL_RUN = (ALP_MM_SESSION_CTL | 0x000001), 00720 00722 ALP_MM_SESSION_CTL_PAUSE, 00723 00725 ALP_MM_SESSION_CTL_STOP, 00726 00728 ALP_MM_SESSION_CTL_PREFETCH, 00729 00731 ALP_MM_SESSION_CTL_GRAB, 00732 00734 ALP_MM_SESSION_CTL_REFRESH, 00735 00737 ALP_MM_SESSION_CTL_NEXT, 00738 00740 ALP_MM_SESSION_CTL_PRV, 00741 00742 ALP_MM_SESSION_CTL_PREVIEW, 00743 00744 ALP_MM_SESSION_CTL_RECORD, 00745 00747 ALP_MM_SESSION_CTL_CUSTOM_BASE = 0x1000 00748 } AlpMMSessionControlOpcode; 00749 00751 typedef enum 00752 { 00754 ALP_MM_SESSION_NOT_INITIALIZED = 0x01, 00755 00758 ALP_MM_SESSION_READY, 00759 00761 ALP_MM_SESSION_PREFETCHING, 00762 00764 ALP_MM_SESSION_PAUSED, 00765 00767 ALP_MM_SESSION_STOPPED, 00768 00770 ALP_MM_SESSION_FINISHED, 00771 00773 ALP_MM_SESSION_RUNNING 00774 00775 } AlpMMSessionState; 00776 00778 typedef enum 00779 { 00781 ALP_MM_SOURCE_FILE_FORMAT = (ALP_MM_SOURCE_FILE | 0x000001), 00782 00784 ALP_MM_SOURCE_FILE_HAS_AUDIO, 00785 00787 ALP_MM_SOURCE_FILE_HAS_VIDEO, 00788 00790 ALP_MM_SOURCE_URL, 00791 00793 ALP_MM_SOURCE_SIZE 00794 }AlpMMSourcePropertyKey; 00795 00797 typedef enum 00798 { 00800 ALP_MM_DESTINATION_FILE_FORMAT = (ALP_MM_DESTINATION_FILE | 0x000001), 00801 00803 ALP_MM_DESTINATION_FILE_HAS_AUDIO, 00804 00806 ALP_MM_DESTINATION_FILE_HAS_VIDEO, 00807 00809 ALP_MM_DESTINATION_URL, 00810 00812 ALP_MM_DISPLAY_ID, 00813 00815 ALP_MM_DESTINATION_ROTATE 00816 }AlpMMDestinationPropertyKey; 00817 00819 typedef enum 00820 { 00822 ALP_MM_DESTINATION_ROTATE_NONE = 0, 00823 00825 ALP_MM_DESTINATION_ROTATE_90L = 1, 00826 00828 ALP_MM_DESTINATION_ROTATE_90R = 2, 00829 00831 ALP_MM_DESTINATION_ROTATE_180 = 3 00832 }AlpMMDestinationRotateType; 00833 00835 typedef enum { 00836 ALP_MM_SESSION_MEDIAIN_TYPE = 0, 00837 ALP_MM_SESSION_MEDIAOUT_TYPE = 1, 00838 ALP_MM_SESSION_VOICEIN_TYPE = 2, 00839 ALP_MM_SESSION_VOICEOUT_TYPE = 3, 00840 ALP_MM_SESSION_RING_TYPE = 4, 00841 ALP_MM_SESSION_SYSSOUND_TYPE = 5, 00842 ALP_MM_SESSION_ALARM_TYPE = 6 00843 } AlpMMAudioAppType; 00844 00846 typedef enum 00847 { 00849 ALP_MM_SESSION_AUDIO_ENABLE = (ALP_MM_SESSION | 0x000001), 00850 00852 ALP_MM_SESSION_AUDIO_VOLUME, 00853 00855 ALP_MM_SESSION_AUDIO_APP_TYPE, 00856 00858 ALP_MM_SESSION_VIDEO_ENABLE, 00859 00860 00863 ALP_MM_SESSION_DEST_RECT, 00864 00867 ALP_MM_SESSION_DEST_ROTATE, 00868 00871 ALP_MM_SESSION_SOURCE_RECT, 00872 00875 ALP_MM_SESSION_CURRENT_TIME, 00876 00879 ALP_MM_SESSION_END_TIME, 00880 00882 ALP_MM_SESSION_PLAYBACK_RATE, 00883 00885 ALP_MM_SESSION_PREFETCH_TIME, 00886 00888 ALP_MM_SESSION_REPEAT_ENABLE, 00889 00892 ALP_MM_SESSION_START_TIME, 00893 00895 ALP_MM_SESSION_SESSION_CLASS, 00896 00898 ALP_MM_SESSION_VIDEO_IS_BLANK, 00899 00901 ALP_MM_SESSION_IS_PREVIEW, 00902 00904 ALP_MM_SESSION_HANDLE_AUDIO_CONFLIC, 00905 00909 ALP_MM_SESSION_VIDEO_SOURCE_ROTATE 00910 00911 }AlpMMSessionPropertyKey; 00912 00914 typedef enum 00915 { 00917 ALP_MM_SESSION_SEEK_ORIGIN_BEGIN = 0x01, 00918 00920 ALP_MM_SESSION_SEEK_ORIGIN_CURRENT, 00921 00923 ALP_MM_SESSION_SEEK_ORIGIN_END 00924 }AlpMMSessionSeekOrigin; 00925 00927 typedef enum 00928 { 00930 ALP_MM_SESSION_EVENT_CAUSE_UNKNOWN = (ALP_MM_SESSION_EVENT | 0x000001), 00931 00933 ALP_MM_SESSION_EVENT_CAUSE_REQUESTED_BY_APP, 00934 00936 ALP_MM_SESSION_EVENT_CAUSE_INVALID_AUDIO_STREAM, 00937 00939 ALP_MM_SESSION_EVENT_CAUSE_INVALID_VIDEO_STREAM, 00940 00942 ALP_MM_SESSION_EVENT_CAUSE_END_OF_STREAM, 00943 00945 ALP_MM_SESSION_EVENT_CAUSE_INVALID_STREAM, 00946 00948 ALP_MM_SESSION_EVENT_CAUSE_STORAGE_FULL, 00949 00951 ALP_MM_SESSION_EVENT_CAUSE_CUSTOM_BASE = 0x1000 00952 }AlpMMSessionEventCauses; 00953 00956 typedef enum 00957 { 00959 ALP_MM_SESSION_EVENT_STATE_CHANGED = (ALP_MM_SESSION_EVENT | 0x000020), 00960 00962 ALP_MM_SESSION_EVENT_WARNING, 00963 00965 ALP_MM_SESSION_EVENT_ERROR, 00966 00968 ALP_MM_SESSION_EVENT_CURRENT_TIME, 00969 00971 ALP_MM_SESSION_EVENT_DELETING, 00972 00974 ALP_MM_SESSION_EVENT_AUDIO_CONFLICT_OCCUR, 00975 00977 ALP_MM_SESSION_EVENT_AUDIO_CONFLICT_CANCEL, 00978 00980 ALP_MM_SESSION_EVENT_CUSTOM_BASE 00981 }AlpMMSessionEventCode; 00982 00984 typedef enum 00985 { 00987 ALP_MM_PROPERTY_TYPE_DEFAULT = (ALP_MM_PROPERTY_TYPE | 0x000010), 00988 00990 ALP_MM_PROPERTY_TYPE_MINIMUM, 00991 00993 ALP_MM_PROPERTY_TYPE_MAXIMUM, 00994 00995 // !return whether the value is readbable 00996 ALP_MM_PROPERTY_TYPE_READABLE, 00997 00998 // !return whether the value is writable, 00999 ALP_MM_PROPERTY_TYPE_WRITABLE 01000 01001 }AlpMMPropertyType; 01002 01004 typedef enum 01005 { 01007 ALP_MM_PROPERTY_CODE_UNDEFINED = (ALP_MM_PROPERTY_CODE | 0x000020), 01008 01010 ALP_MM_PROPERTY_CODE_RAW, 01011 01013 ALP_MM_PROPERTY_CODE_INT8, 01014 01016 ALP_MM_PROPERTY_CODE_INT16, 01017 01019 ALP_MM_PROPERTY_CODE_INT32, 01020 01022 ALP_MM_PROPERTY_CODE_INT64, 01023 01025 ALP_MM_PROPERTY_CODE_BOOL, 01026 01028 ALP_MM_PROPERTY_CODE_STRING 01029 01030 }AlpMMPropertyCode; 01031 01039 /**************************************************************************** 01040 * Macros (defined in header) 01041 *****************************************************************************/ 01042 01043 01052 /**************************************************************************** 01053 * Functions and Grouping Objects 01054 *****************************************************************************/ 01055 01056 01077 alp_status_t alp_media_session_create (AlpMMSessionClassID sessionClass, AlpMMSessionID * outSession); 01078 01079 01080 01111 alp_status_t alp_media_session_add_source(AlpMMSessionID session, AlpMMSourceType type, const void *sourceURL, AlpMMSourceID *outSource); 01112 01113 01143 alp_status_t alp_media_session_add_dest(AlpMMSessionID session, const char *destURL, AlpMMDestID *outDest); 01144 01145 01146 01175 alp_status_t alp_media_session_control(AlpMMSessionID session, AlpMMSessionControlOpcode sessionCtl); 01176 01202 alp_status_t alp_media_session_finalize(AlpMMSessionID session); 01203 01204 01205 01237 alp_status_t alp_media_session_seek(AlpMMSessionID session, AlpMMSessionSeekOrigin origin, int64_t position); 01238 01273 alp_status_t alp_media_session_seek_full(AlpMMSessionID session, AlpMMSessionSeekOrigin origin, int64_t position, int64_t play_duration, double rate, int is_Accurate); 01274 01296 alp_status_t alp_media_session_get_state(AlpMMSessionID session, AlpMMSessionState *outState); 01297 01298 01299 01327 alp_status_t alp_media_session_register_callback(AlpMMSessionID session, AlpMMSessionCallbackFn callback, void * userdata); 01328 01357 alp_status_t alp_media_session_register_grab_callback(AlpMMSessionID session, AlpMMSessionGrabCallbackFn callback, void * userdata); 01358 01379 alp_status_t alp_media_session_remove_all(AlpMMSessionID session); 01380 01381 01402 alp_status_t alp_media_session_destroy(AlpMMSessionID session); 01403 01404 01405 01406 01407 01437 alp_status_t alp_media_property_get(int32_t id, AlpMMPropertyType propertyType, int32_t propertyKey, AlpMMPropertyCode properytyCode, void *outValue, int32_t *ioLength); 01438 01439 01477 alp_status_t alp_media_property_set(int32_t id, int32_t propertyKey, AlpMMPropertyCode propertyCode, void *value, int32_t *length); 01478 01498 alp_status_t alp_media_session_gst_init(); 01499 01519 alp_status_t alp_media_session_syssnd_init(); 01520 01540 alp_status_t alp_media_session_syssnd_play(const char * sound, const char * streamtype, int volume); 01541 01561 alp_status_t alp_media_session_syssnd_play_file(char * filename, const char * streamtype, int volume); 01562 01586 alp_status_t alp_media_session_play_tone(unsigned short amplitude, unsigned short duration, unsigned short freq, const char* streamtype); 01587 01597 /**************************************************************************** 01598 * Constants 01599 *****************************************************************************/ 01600 01602 #define ALP_LONG_MAX 0xffffff 01603 01605 #define ALP_MM_ISO_SENSITIVITY_AUTO 0 01606 01608 #define ALP_MM_EXPOSURE_AUTO 0 01609 01611 #define CAMERADEV "dev://camera" 01612 01614 #define MICDEV "dev://mic" 01615 01617 #define LCDDEV "dev://lcd" 01618 01620 #define FILENAME "dev://filename" 01621 01623 01624 #define DSPDEV "dev://dsp" 01625 01627 01628 #define FAKEDEV "dev://null" 01629 01631 01632 #define VIDEOFAKEDEV "dev://video" 01633 01635 01636 #define XWINDOWDEV "dev://xwindow" 01637 01639 01640 #define AUDIOFAKEDEV "dev://audio" 01641 01644 #ifdef __cplusplus 01645 } 01646 #endif 01647 01648 #endif 01649 01650
Copyright © 1999-2008 ACCESS CO., LTD. All rights reserved.