mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-11-04 16:31:15 -05:00
Merge pull request #15 from cjcliffe/multiple_demodulators
Multiple demodulators and related interactivity
This commit is contained in:
commit
943341ebc7
@ -2,15 +2,15 @@ cmake_minimum_required (VERSION 2.8)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
||||
|
||||
macro(configure_files srcDir destDir)
|
||||
message(STATUS "Configuring directory ${destDir}")
|
||||
macro(configure_files srcDir destDir globStr)
|
||||
message(STATUS "Copying ${srcDir}/${globStr} to directory ${destDir}")
|
||||
make_directory(${destDir})
|
||||
|
||||
file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*)
|
||||
file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/${globStr})
|
||||
foreach(templateFile ${templateFiles})
|
||||
set(srcTemplatePath ${srcDir}/${templateFile})
|
||||
message(STATUS "Configuring file ${templateFile}")
|
||||
if(NOT IS_DIRECTORY ${srcTemplatePath})
|
||||
# message(STATUS "Configuring file ${templateFile}")
|
||||
configure_file(
|
||||
${srcTemplatePath}
|
||||
${destDir}/${templateFile}
|
||||
@ -27,8 +27,8 @@ macro(configure_files_recurse srcDir destDir)
|
||||
file(GLOB_RECURSE templateFiles RELATIVE ${srcDir} ${srcDir}/*)
|
||||
foreach(templateFile ${templateFiles})
|
||||
set(srcTemplatePath ${srcDir}/${templateFile})
|
||||
message(STATUS "Configuring file ${templateFile}")
|
||||
if(NOT IS_DIRECTORY ${srcTemplatePath})
|
||||
# message(STATUS "Configuring file ${templateFile}")
|
||||
configure_file(
|
||||
${srcTemplatePath}
|
||||
${destDir}/${templateFile}
|
||||
@ -57,7 +57,7 @@ include(${wxWidgets_USE_FILE})
|
||||
# include_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/include )
|
||||
# link_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/lib ${OPENGL_INCLUDE_DIR})
|
||||
|
||||
IF (DEFINED WIN32)
|
||||
IF (WIN32)
|
||||
set(wxWidgets_USE_STATIC ON)
|
||||
include_directories ( ${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release )
|
||||
link_directories ( ${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release/x64 )
|
||||
@ -69,15 +69,23 @@ IF (DEFINED WIN32)
|
||||
ADD_DEFINITIONS(
|
||||
# To use wasapi
|
||||
-D__WINDOWS_WASAPI__
|
||||
|
||||
# To use directsound
|
||||
#-D__WINDOWS_DS__
|
||||
)
|
||||
|
||||
# To use wasapi
|
||||
SET(OTHER_LIBRARIES -luuid -lksuser )
|
||||
|
||||
# To use DirectSound (which uses WASAPI anyways?)
|
||||
# SET(OTHER_LIBRARIES -ldsound)
|
||||
ENDIF (DEFINED WIN32)
|
||||
|
||||
# Copy DLL files to build dir
|
||||
configure_files(${PROJECT_SOURCE_DIR}/external/liquid-dsp-lib/64 ${CMAKE_BINARY_DIR} "*.dll")
|
||||
configure_files(${PROJECT_SOURCE_DIR}/external/rtl-sdr-release/x64 ${CMAKE_BINARY_DIR} "*.dll")
|
||||
configure_files(${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${CMAKE_BINARY_DIR} "*.dll")
|
||||
|
||||
ENDIF (WIN32)
|
||||
|
||||
IF (UNIX)
|
||||
set(RTLSDR_INCLUDE "/opt/local/include" CACHE FILEPATH "RTL-SDR Include Path")
|
||||
@ -124,6 +132,7 @@ SET (cubicsdr_sources
|
||||
src/util/Gradient.cpp
|
||||
src/util/Timer.cpp
|
||||
src/util/MouseTracker.cpp
|
||||
src/util/GLFont.cpp
|
||||
src/visual/PrimaryGLContext.cpp
|
||||
src/visual/ScopeCanvas.cpp
|
||||
src/visual/ScopeContext.cpp
|
||||
@ -132,6 +141,7 @@ SET (cubicsdr_sources
|
||||
src/visual/WaterfallCanvas.cpp
|
||||
src/visual/WaterfallContext.cpp
|
||||
external/rtaudio/RtAudio.cpp
|
||||
external/lodepng/lodepng.cpp
|
||||
)
|
||||
|
||||
SET (cubicsdr_headers
|
||||
@ -143,11 +153,13 @@ SET (cubicsdr_headers
|
||||
src/demod/DemodulatorThread.h
|
||||
src/demod/DemodulatorWorkerThread.h
|
||||
src/demod/DemodulatorMgr.h
|
||||
src/demod/DemodDefs.h
|
||||
src/audio/AudioThread.h
|
||||
src/util/Gradient.h
|
||||
src/util/Timer.h
|
||||
src/util/ThreadQueue.h
|
||||
src/util/MouseTracker.h
|
||||
src/util/GLFont.h
|
||||
src/visual/PrimaryGLContext.h
|
||||
src/visual/ScopeCanvas.h
|
||||
src/visual/ScopeContext.h
|
||||
@ -156,25 +168,30 @@ SET (cubicsdr_headers
|
||||
src/visual/WaterfallCanvas.h
|
||||
src/visual/WaterfallContext.h
|
||||
external/rtaudio/RtAudio.h
|
||||
external/lodepng/lodepng.h
|
||||
)
|
||||
|
||||
include_directories ( ${PROJECT_SOURCE_DIR}/src/sdr
|
||||
${PROJECT_SOURCE_DIR}/src/demod
|
||||
${PROJECT_SOURCE_DIR}/src/audio
|
||||
${PROJECT_SOURCE_DIR}/src/util
|
||||
${PROJECT_SOURCE_DIR}/src/visual
|
||||
${PROJECT_SOURCE_DIR}/src
|
||||
${PROJECT_SOURCE_DIR}/external/rtaudio )
|
||||
include_directories (
|
||||
${PROJECT_SOURCE_DIR}/src/sdr
|
||||
${PROJECT_SOURCE_DIR}/src/demod
|
||||
${PROJECT_SOURCE_DIR}/src/audio
|
||||
${PROJECT_SOURCE_DIR}/src/util
|
||||
${PROJECT_SOURCE_DIR}/src/visual
|
||||
${PROJECT_SOURCE_DIR}/src
|
||||
${PROJECT_SOURCE_DIR}/external/rtaudio
|
||||
${PROJECT_SOURCE_DIR}/external/lodepng
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(
|
||||
-std=c++0x # or -std=c++11
|
||||
-pthread
|
||||
)
|
||||
|
||||
#configure_files(${PROJECT_SOURCE_DIR}/shaders ${PROJECT_BINARY_DIR}/shaders COPYONLY)
|
||||
#configure_files(${PROJECT_SOURCE_DIR}/png ${PROJECT_BINARY_DIR}/png COPYONLY)
|
||||
|
||||
configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR} "*.fnt")
|
||||
configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR} "*.png")
|
||||
|
||||
add_executable(CubicSDR ${cubicsdr_sources} ${cubicsdr_headers})
|
||||
|
||||
target_link_libraries(CubicSDR rtlsdr liquid ${FFTW_LIB} ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES} ${OTHER_LIBRARIES})
|
||||
# cubicvr2 glfw ${GLFW_LIBRARIES}
|
||||
|
||||
|
||||
|
@ -9,6 +9,8 @@ Utilizes:
|
||||
- RtAudio (http://www.music.mcgill.ca/~gary/rtaudio/ http://github.com/thestk/rtaudio/)
|
||||
- OpenGL (https://www.opengl.org/)
|
||||
- wxWidgets (https://www.wxwidgets.org/)
|
||||
- BMFont (http://www.angelcode.com/ http://www.angelcode.com/products/bmfont/)
|
||||
- Bitstream Vera font (http://en.wikipedia.org/wiki/Bitstream_Vera)
|
||||
- CMake (http://www.cmake.org/)
|
||||
|
||||
|
||||
|
6141
external/lodepng/lodepng.cpp
vendored
Normal file
6141
external/lodepng/lodepng.cpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1708
external/lodepng/lodepng.h
vendored
Normal file
1708
external/lodepng/lodepng.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
56
font/vera_sans_mono12.bmfc
Normal file
56
font/vera_sans_mono12.bmfc
Normal file
@ -0,0 +1,56 @@
|
||||
# AngelCode Bitmap Font Generator configuration file
|
||||
fileVersion=1
|
||||
|
||||
# font settings
|
||||
fontName=Bitstream Vera Sans Mono
|
||||
fontFile=
|
||||
charSet=0
|
||||
fontSize=12
|
||||
aa=1
|
||||
scaleH=100
|
||||
useSmoothing=0
|
||||
isBold=0
|
||||
isItalic=0
|
||||
useUnicode=1
|
||||
disableBoxChars=1
|
||||
outputInvalidCharGlyph=0
|
||||
dontIncludeKerningPairs=0
|
||||
useHinting=1
|
||||
renderFromOutline=0
|
||||
useClearType=0
|
||||
|
||||
# character alignment
|
||||
paddingDown=0
|
||||
paddingUp=0
|
||||
paddingRight=0
|
||||
paddingLeft=0
|
||||
spacingHoriz=1
|
||||
spacingVert=1
|
||||
useFixedHeight=1
|
||||
forceZero=0
|
||||
|
||||
# output file
|
||||
outWidth=128
|
||||
outHeight=128
|
||||
outBitDepth=32
|
||||
fontDescFormat=0
|
||||
fourChnlPacked=0
|
||||
textureFormat=png
|
||||
textureCompression=0
|
||||
alphaChnl=1
|
||||
redChnl=0
|
||||
greenChnl=0
|
||||
blueChnl=0
|
||||
invA=0
|
||||
invR=0
|
||||
invG=0
|
||||
invB=0
|
||||
|
||||
# outline
|
||||
outlineThickness=0
|
||||
|
||||
# selected chars
|
||||
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
|
||||
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
|
||||
|
||||
# imported icon images
|
170
font/vera_sans_mono12.fnt
Normal file
170
font/vera_sans_mono12.fnt
Normal file
@ -0,0 +1,170 @@
|
||||
info face="Bitstream Vera Sans Mono" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=0 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=12 base=10 scaleW=128 scaleH=128 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="vera_sans_mono12_0.png"
|
||||
chars count=166
|
||||
char id=32 x=40 y=78 width=3 height=12 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=33 x=126 y=65 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=34 x=118 y=65 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=35 x=21 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=36 x=12 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=37 x=35 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=38 x=18 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=39 x=126 y=13 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=40 x=125 y=0 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=41 x=64 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=42 x=42 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=43 x=48 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=44 x=126 y=26 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=45 x=12 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=46 x=96 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=47 x=66 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=48 x=72 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=49 x=78 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=50 x=84 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=51 x=90 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=52 x=119 y=0 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=53 x=102 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=54 x=108 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=55 x=114 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=56 x=120 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=57 x=0 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=58 x=104 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=59 x=126 y=52 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=60 x=6 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=61 x=12 y=26 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=62 x=18 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=63 x=44 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=64 x=24 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=65 x=30 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=66 x=36 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=67 x=42 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=68 x=48 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=69 x=54 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=70 x=60 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=71 x=66 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=72 x=96 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=73 x=72 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=74 x=54 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=75 x=78 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=76 x=84 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=77 x=90 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=78 x=96 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=79 x=102 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=80 x=108 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=81 x=114 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=82 x=70 y=0 width=6 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=83 x=120 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=84 x=0 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=85 x=6 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=86 x=12 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=87 x=42 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=88 x=18 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=89 x=24 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=90 x=30 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=91 x=85 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=92 x=36 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=93 x=82 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=94 x=42 y=39 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=95 x=48 y=39 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=96 x=76 y=78 width=2 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=97 x=54 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=98 x=60 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=99 x=109 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=100 x=66 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=101 x=72 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=102 x=74 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=103 x=78 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=104 x=84 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=105 x=90 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=106 x=0 y=78 width=3 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=107 x=96 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=108 x=102 y=39 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=109 x=108 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=110 x=114 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=111 x=120 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=112 x=0 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=113 x=6 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=114 x=94 y=65 width=4 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=115 x=12 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=116 x=79 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=117 x=18 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=118 x=24 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=119 x=30 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=120 x=36 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=121 x=42 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=122 x=48 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=123 x=49 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=124 x=100 y=78 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=125 x=64 y=65 width=4 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=126 x=54 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=160 x=20 y=78 width=3 height=12 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=161 x=90 y=78 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=162 x=39 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=163 x=60 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=164 x=66 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=165 x=72 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=166 x=102 y=78 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=167 x=29 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=168 x=56 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=169 x=49 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=170 x=89 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=171 x=84 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=172 x=78 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=173 x=122 y=65 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=174 x=63 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=175 x=4 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=176 x=8 y=78 width=3 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=177 x=84 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=178 x=114 y=65 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=179 x=16 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=180 x=67 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=181 x=7 y=0 width=6 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=182 x=90 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=183 x=88 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=184 x=79 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=185 x=36 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=186 x=99 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=187 x=104 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=188 x=28 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=189 x=56 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=190 x=14 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=191 x=34 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=215 x=96 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=216 x=105 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=223 x=102 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=247 x=108 y=52 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=248 x=114 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=710 x=24 y=78 width=3 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=711 x=28 y=78 width=3 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=730 x=32 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=732 x=69 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=733 x=59 y=65 width=4 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=937 x=120 y=52 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=960 x=112 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8211 x=91 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8212 x=0 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8216 x=126 y=39 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8217 x=94 y=78 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8218 x=98 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8220 x=44 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8221 x=60 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8222 x=48 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8226 x=52 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8230 x=6 y=65 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8249 x=70 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8250 x=73 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8706 x=24 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8710 x=84 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8719 x=12 y=65 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8721 x=18 y=65 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8722 x=0 y=13 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8725 x=6 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8729 x=92 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8730 x=77 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8734 x=98 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8747 x=24 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8776 x=30 y=13 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8800 x=36 y=13 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8804 x=54 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=8805 x=60 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
||||
char id=9674 x=0 y=65 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
|
BIN
font/vera_sans_mono12_0.png
Normal file
BIN
font/vera_sans_mono12_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
56
font/vera_sans_mono16.bmfc
Normal file
56
font/vera_sans_mono16.bmfc
Normal file
@ -0,0 +1,56 @@
|
||||
# AngelCode Bitmap Font Generator configuration file
|
||||
fileVersion=1
|
||||
|
||||
# font settings
|
||||
fontName=Bitstream Vera Sans Mono
|
||||
fontFile=
|
||||
charSet=0
|
||||
fontSize=16
|
||||
aa=1
|
||||
scaleH=100
|
||||
useSmoothing=1
|
||||
isBold=0
|
||||
isItalic=0
|
||||
useUnicode=1
|
||||
disableBoxChars=1
|
||||
outputInvalidCharGlyph=0
|
||||
dontIncludeKerningPairs=0
|
||||
useHinting=1
|
||||
renderFromOutline=0
|
||||
useClearType=0
|
||||
|
||||
# character alignment
|
||||
paddingDown=0
|
||||
paddingUp=0
|
||||
paddingRight=0
|
||||
paddingLeft=0
|
||||
spacingHoriz=1
|
||||
spacingVert=1
|
||||
useFixedHeight=1
|
||||
forceZero=0
|
||||
|
||||
# output file
|
||||
outWidth=256
|
||||
outHeight=128
|
||||
outBitDepth=32
|
||||
fontDescFormat=0
|
||||
fourChnlPacked=0
|
||||
textureFormat=png
|
||||
textureCompression=0
|
||||
alphaChnl=1
|
||||
redChnl=0
|
||||
greenChnl=0
|
||||
blueChnl=0
|
||||
invA=0
|
||||
invR=0
|
||||
invG=0
|
||||
invB=0
|
||||
|
||||
# outline
|
||||
outlineThickness=0
|
||||
|
||||
# selected chars
|
||||
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
|
||||
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
|
||||
|
||||
# imported icon images
|
170
font/vera_sans_mono16.fnt
Normal file
170
font/vera_sans_mono16.fnt
Normal file
@ -0,0 +1,170 @@
|
||||
info face="Bitstream Vera Sans Mono" size=16 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=16 base=13 scaleW=256 scaleH=128 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="vera_sans_mono16_0.png"
|
||||
chars count=166
|
||||
char id=32 x=19 y=68 width=3 height=16 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=33 x=109 y=68 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=34 x=63 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=35 x=49 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=36 x=199 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=37 x=67 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=38 x=207 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=39 x=254 y=51 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=40 x=51 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=41 x=43 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=42 x=239 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=43 x=247 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=44 x=39 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=45 x=224 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=46 x=91 y=68 width=2 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=47 x=208 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=48 x=32 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=49 x=250 y=34 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=50 x=48 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=51 x=56 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=52 x=175 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=53 x=72 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=54 x=80 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=55 x=88 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=56 x=96 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=57 x=104 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=58 x=94 y=68 width=2 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=59 x=23 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=60 x=128 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=61 x=136 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=62 x=144 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=63 x=160 y=51 width=5 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=64 x=160 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=65 x=168 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=66 x=176 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=67 x=184 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=68 x=192 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=69 x=200 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=70 x=208 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=71 x=216 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=72 x=64 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=73 x=166 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=74 x=7 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=75 x=248 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=76 x=0 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=77 x=8 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=78 x=16 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=79 x=24 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=80 x=32 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=81 x=40 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=82 x=157 y=0 width=8 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=83 x=48 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=84 x=56 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=85 x=64 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=86 x=72 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=87 x=0 y=0 width=10 height=16 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=88 x=80 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=89 x=88 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=90 x=96 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=91 x=15 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=92 x=21 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=93 x=87 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=94 x=128 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=95 x=136 y=34 width=7 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=96 x=83 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=97 x=222 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=98 x=63 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=99 x=159 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=100 x=173 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=101 x=229 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=102 x=243 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=103 x=14 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=104 x=49 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=105 x=183 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=106 x=0 y=68 width=4 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=107 x=126 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=108 x=191 y=0 width=7 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=109 x=215 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=110 x=98 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=111 x=112 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=112 x=91 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=113 x=70 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=114 x=154 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=115 x=152 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=116 x=187 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=117 x=0 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=118 x=35 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=119 x=112 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=120 x=84 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=121 x=105 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=122 x=133 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=123 x=184 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=124 x=103 y=68 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=125 x=208 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=126 x=231 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=160 x=79 y=68 width=3 height=16 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=161 x=107 y=68 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=162 x=236 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=163 x=0 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=164 x=8 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=165 x=16 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=166 x=105 y=68 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=167 x=56 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=168 x=67 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=169 x=103 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=170 x=196 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=171 x=77 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=172 x=24 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=173 x=229 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=174 x=85 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=175 x=234 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=176 x=239 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=177 x=40 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=178 x=249 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=179 x=244 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=180 x=47 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=181 x=112 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=182 x=120 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=183 x=100 y=68 width=2 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=184 x=75 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=185 x=71 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=186 x=190 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=187 x=119 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=188 x=130 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=189 x=152 y=17 width=7 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=190 x=121 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=191 x=202 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=215 x=194 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=216 x=11 y=0 width=9 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=223 x=28 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=247 x=94 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=248 x=76 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=710 x=5 y=68 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=711 x=10 y=68 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=730 x=214 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=732 x=178 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=733 x=172 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=937 x=224 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=960 x=58 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8211 x=40 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8212 x=31 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8216 x=27 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8217 x=31 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8218 x=35 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8220 x=201 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8221 x=42 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8222 x=180 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8226 x=219 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8230 x=166 y=0 width=8 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8249 x=55 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8250 x=59 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8706 x=166 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8710 x=21 y=0 width=9 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8719 x=140 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8721 x=147 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8722 x=232 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8725 x=215 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8729 x=97 y=68 width=2 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8730 x=148 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8734 x=139 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8747 x=240 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8776 x=104 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8800 x=112 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8804 x=120 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=8805 x=144 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
||||
char id=9674 x=223 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
|
BIN
font/vera_sans_mono16_0.png
Normal file
BIN
font/vera_sans_mono16_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.5 KiB |
56
font/vera_sans_mono18.bmfc
Normal file
56
font/vera_sans_mono18.bmfc
Normal file
@ -0,0 +1,56 @@
|
||||
# AngelCode Bitmap Font Generator configuration file
|
||||
fileVersion=1
|
||||
|
||||
# font settings
|
||||
fontName=Bitstream Vera Sans Mono
|
||||
fontFile=
|
||||
charSet=0
|
||||
fontSize=18
|
||||
aa=1
|
||||
scaleH=100
|
||||
useSmoothing=1
|
||||
isBold=0
|
||||
isItalic=0
|
||||
useUnicode=1
|
||||
disableBoxChars=1
|
||||
outputInvalidCharGlyph=0
|
||||
dontIncludeKerningPairs=0
|
||||
useHinting=1
|
||||
renderFromOutline=0
|
||||
useClearType=1
|
||||
|
||||
# character alignment
|
||||
paddingDown=0
|
||||
paddingUp=0
|
||||
paddingRight=0
|
||||
paddingLeft=0
|
||||
spacingHoriz=1
|
||||
spacingVert=1
|
||||
useFixedHeight=1
|
||||
forceZero=0
|
||||
|
||||
# output file
|
||||
outWidth=256
|
||||
outHeight=128
|
||||
outBitDepth=32
|
||||
fontDescFormat=0
|
||||
fourChnlPacked=0
|
||||
textureFormat=png
|
||||
textureCompression=0
|
||||
alphaChnl=1
|
||||
redChnl=0
|
||||
greenChnl=0
|
||||
blueChnl=0
|
||||
invA=0
|
||||
invR=0
|
||||
invG=0
|
||||
invB=0
|
||||
|
||||
# outline
|
||||
outlineThickness=0
|
||||
|
||||
# selected chars
|
||||
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
|
||||
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
|
||||
|
||||
# imported icon images
|
170
font/vera_sans_mono18.fnt
Normal file
170
font/vera_sans_mono18.fnt
Normal file
@ -0,0 +1,170 @@
|
||||
info face="Bitstream Vera Sans Mono" size=18 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=18 base=14 scaleW=256 scaleH=128 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="vera_sans_mono18_0.png"
|
||||
chars count=166
|
||||
char id=32 x=154 y=95 width=3 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=33 x=142 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=34 x=250 y=19 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=35 x=12 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=36 x=159 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=37 x=36 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=38 x=130 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=39 x=126 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=40 x=0 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=41 x=6 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=42 x=195 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=43 x=40 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=44 x=251 y=76 width=4 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=45 x=18 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=46 x=150 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=47 x=231 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=48 x=90 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=49 x=240 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=50 x=110 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=51 x=120 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=52 x=207 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=53 x=140 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=54 x=150 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=55 x=160 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=56 x=170 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=57 x=180 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=58 x=130 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=59 x=121 y=95 width=4 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=60 x=210 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=61 x=220 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=62 x=230 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=63 x=181 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=64 x=196 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=65 x=108 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=66 x=0 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=67 x=10 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=68 x=20 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=69 x=30 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=70 x=27 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=71 x=50 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=72 x=130 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=73 x=189 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=74 x=247 y=0 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=75 x=90 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=76 x=63 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=77 x=110 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=78 x=120 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=79 x=130 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=80 x=140 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=81 x=150 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=82 x=141 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=83 x=160 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=84 x=170 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=85 x=180 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=86 x=163 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=87 x=72 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=88 x=174 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=89 x=190 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=90 x=200 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=91 x=106 y=95 width=4 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=92 x=81 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=93 x=116 y=95 width=4 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=94 x=240 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=95 x=0 y=57 width=9 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=96 x=90 y=95 width=5 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=97 x=20 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=98 x=30 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=99 x=108 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=100 x=50 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=101 x=60 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=102 x=90 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=103 x=70 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=104 x=177 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=105 x=186 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=106 x=244 y=76 width=6 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=107 x=9 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=108 x=72 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=109 x=185 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=110 x=222 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=111 x=80 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=112 x=90 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=113 x=100 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=114 x=117 y=76 width=7 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=115 x=168 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=116 x=45 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=117 x=36 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=118 x=120 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=119 x=24 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=120 x=119 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=121 x=130 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=122 x=150 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=123 x=197 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=124 x=134 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=125 x=221 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=126 x=140 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=160 x=158 y=95 width=3 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=161 x=166 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=162 x=18 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=163 x=217 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=164 x=0 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=165 x=227 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=166 x=162 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=167 x=149 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=168 x=24 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=169 x=96 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=170 x=157 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=171 x=54 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=172 x=237 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=173 x=48 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=174 x=84 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=175 x=66 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=176 x=173 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=177 x=0 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=178 x=78 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=179 x=60 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=180 x=54 y=95 width=5 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=181 x=10 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=182 x=20 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=183 x=138 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=184 x=42 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=185 x=237 y=76 width=6 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=186 x=213 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=187 x=204 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=188 x=30 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=189 x=50 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=190 x=60 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=191 x=205 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=215 x=213 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=216 x=152 y=0 width=10 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=223 x=70 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=247 x=80 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=248 x=100 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=710 x=36 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=711 x=72 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=730 x=30 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=732 x=165 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=733 x=249 y=57 width=6 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=937 x=190 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=960 x=200 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8211 x=60 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8212 x=48 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8216 x=96 y=95 width=4 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8217 x=101 y=95 width=4 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8218 x=111 y=95 width=4 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8220 x=125 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8221 x=229 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8222 x=133 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8226 x=84 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8230 x=240 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8249 x=250 y=38 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8250 x=12 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8706 x=141 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8710 x=0 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8719 x=40 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8721 x=60 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8722 x=70 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8725 x=99 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8729 x=146 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8730 x=80 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8734 x=100 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8747 x=210 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8776 x=220 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8800 x=230 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8804 x=10 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=8805 x=40 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
||||
char id=9674 x=110 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
|
BIN
font/vera_sans_mono18_0.png
Normal file
BIN
font/vera_sans_mono18_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
56
font/vera_sans_mono24.bmfc
Normal file
56
font/vera_sans_mono24.bmfc
Normal file
@ -0,0 +1,56 @@
|
||||
# AngelCode Bitmap Font Generator configuration file
|
||||
fileVersion=1
|
||||
|
||||
# font settings
|
||||
fontName=Bitstream Vera Sans Mono
|
||||
fontFile=
|
||||
charSet=0
|
||||
fontSize=24
|
||||
aa=1
|
||||
scaleH=100
|
||||
useSmoothing=1
|
||||
isBold=0
|
||||
isItalic=0
|
||||
useUnicode=1
|
||||
disableBoxChars=1
|
||||
outputInvalidCharGlyph=0
|
||||
dontIncludeKerningPairs=0
|
||||
useHinting=1
|
||||
renderFromOutline=0
|
||||
useClearType=1
|
||||
|
||||
# character alignment
|
||||
paddingDown=0
|
||||
paddingUp=0
|
||||
paddingRight=0
|
||||
paddingLeft=0
|
||||
spacingHoriz=1
|
||||
spacingVert=1
|
||||
useFixedHeight=1
|
||||
forceZero=0
|
||||
|
||||
# output file
|
||||
outWidth=256
|
||||
outHeight=256
|
||||
outBitDepth=32
|
||||
fontDescFormat=0
|
||||
fourChnlPacked=0
|
||||
textureFormat=png
|
||||
textureCompression=0
|
||||
alphaChnl=1
|
||||
redChnl=0
|
||||
greenChnl=0
|
||||
blueChnl=0
|
||||
invA=0
|
||||
invR=0
|
||||
invG=0
|
||||
invB=0
|
||||
|
||||
# outline
|
||||
outlineThickness=0
|
||||
|
||||
# selected chars
|
||||
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
|
||||
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
|
||||
|
||||
# imported icon images
|
170
font/vera_sans_mono24.fnt
Normal file
170
font/vera_sans_mono24.fnt
Normal file
@ -0,0 +1,170 @@
|
||||
info face="Bitstream Vera Sans Mono" size=24 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=24 base=19 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="vera_sans_mono24_0.png"
|
||||
chars count=166
|
||||
char id=32 x=252 y=25 width=3 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=33 x=252 y=100 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=34 x=146 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=35 x=45 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=36 x=0 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=37 x=163 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=38 x=177 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=39 x=252 y=150 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=40 x=238 y=150 width=6 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=41 x=245 y=150 width=6 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=42 x=24 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=43 x=219 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=44 x=39 y=175 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=45 x=194 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=46 x=251 y=125 width=4 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=47 x=36 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=48 x=60 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=49 x=218 y=125 width=10 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=50 x=72 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=51 x=84 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=52 x=69 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=53 x=96 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=54 x=130 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=55 x=142 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=56 x=154 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=57 x=166 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=58 x=45 y=175 width=4 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=59 x=21 y=175 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=60 x=168 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=61 x=182 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=62 x=196 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=63 x=141 y=125 width=10 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=64 x=126 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=65 x=224 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=66 x=91 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=67 x=199 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=68 x=225 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=69 x=13 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=70 x=0 y=150 width=10 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=71 x=39 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=72 x=82 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=73 x=163 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=74 x=178 y=75 width=11 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=75 x=238 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=76 x=190 y=75 width=11 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=77 x=134 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=78 x=147 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=79 x=117 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=80 x=173 y=50 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=81 x=186 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=82 x=0 y=50 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=83 x=212 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=84 x=14 y=50 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=85 x=238 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=86 x=0 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=87 x=75 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=88 x=42 y=50 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=89 x=149 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=90 x=56 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=91 x=210 y=150 width=6 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=92 x=202 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=93 x=14 y=175 width=6 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=94 x=56 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=95 x=95 y=50 width=12 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=96 x=217 y=150 width=6 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=97 x=214 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=98 x=226 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=99 x=22 y=150 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=100 x=238 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=101 x=0 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=102 x=12 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=103 x=24 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=104 x=240 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=105 x=36 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=106 x=93 y=150 width=8 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=107 x=48 y=100 width=11 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=108 x=60 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=109 x=78 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=110 x=229 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=111 x=72 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=112 x=84 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=113 x=96 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=114 x=11 y=150 width=10 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=115 x=152 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=116 x=120 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=117 x=185 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=118 x=108 y=50 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=119 x=120 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=120 x=104 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=121 x=52 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=122 x=130 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=123 x=207 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=124 x=63 y=175 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=125 x=108 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=126 x=140 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=160 x=55 y=175 width=3 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=161 x=59 y=175 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=162 x=132 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=163 x=144 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=164 x=156 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=165 x=98 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=166 x=67 y=175 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=167 x=174 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=168 x=178 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=169 x=60 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=170 x=43 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=171 x=168 y=100 width=11 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=172 x=28 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=173 x=138 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=174 x=90 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=175 x=111 y=150 width=8 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=176 x=247 y=0 width=8 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=177 x=210 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=178 x=154 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=179 x=162 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=180 x=224 y=150 width=6 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=181 x=180 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=182 x=26 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=183 x=50 y=175 width=4 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=184 x=231 y=150 width=6 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=185 x=186 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=186 x=63 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=187 x=192 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=188 x=65 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=189 x=160 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=190 x=121 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=191 x=196 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=215 x=204 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=216 x=30 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=223 x=216 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=247 x=14 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=248 x=0 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=710 x=129 y=150 width=8 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=711 x=102 y=150 width=8 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=730 x=202 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=732 x=83 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=733 x=120 y=150 width=8 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=937 x=233 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=960 x=191 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8211 x=0 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8212 x=105 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8216 x=250 y=75 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8217 x=33 y=175 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8218 x=27 y=175 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8220 x=33 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8221 x=73 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8222 x=53 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8226 x=170 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8230 x=135 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8249 x=0 y=175 width=6 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8250 x=7 y=175 width=6 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8706 x=119 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8710 x=15 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8719 x=228 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8721 x=240 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8722 x=205 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8725 x=12 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8729 x=251 y=50 width=4 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8730 x=42 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8734 x=70 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8747 x=48 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8776 x=84 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8800 x=112 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8804 x=154 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=8805 x=28 y=50 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
|
||||
char id=9674 x=108 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
|
BIN
font/vera_sans_mono24_0.png
Normal file
BIN
font/vera_sans_mono24_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
56
font/vera_sans_mono32.bmfc
Normal file
56
font/vera_sans_mono32.bmfc
Normal file
@ -0,0 +1,56 @@
|
||||
# AngelCode Bitmap Font Generator configuration file
|
||||
fileVersion=1
|
||||
|
||||
# font settings
|
||||
fontName=Bitstream Vera Sans Mono
|
||||
fontFile=
|
||||
charSet=0
|
||||
fontSize=32
|
||||
aa=1
|
||||
scaleH=100
|
||||
useSmoothing=1
|
||||
isBold=0
|
||||
isItalic=0
|
||||
useUnicode=1
|
||||
disableBoxChars=1
|
||||
outputInvalidCharGlyph=0
|
||||
dontIncludeKerningPairs=0
|
||||
useHinting=1
|
||||
renderFromOutline=0
|
||||
useClearType=0
|
||||
|
||||
# character alignment
|
||||
paddingDown=0
|
||||
paddingUp=0
|
||||
paddingRight=0
|
||||
paddingLeft=0
|
||||
spacingHoriz=1
|
||||
spacingVert=1
|
||||
useFixedHeight=1
|
||||
forceZero=0
|
||||
|
||||
# output file
|
||||
outWidth=512
|
||||
outHeight=256
|
||||
outBitDepth=32
|
||||
fontDescFormat=0
|
||||
fourChnlPacked=0
|
||||
textureFormat=png
|
||||
textureCompression=0
|
||||
alphaChnl=1
|
||||
redChnl=0
|
||||
greenChnl=0
|
||||
blueChnl=0
|
||||
invA=0
|
||||
invR=0
|
||||
invG=0
|
||||
invB=0
|
||||
|
||||
# outline
|
||||
outlineThickness=0
|
||||
|
||||
# selected chars
|
||||
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
|
||||
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
|
||||
|
||||
# imported icon images
|
170
font/vera_sans_mono32.fnt
Normal file
170
font/vera_sans_mono32.fnt
Normal file
@ -0,0 +1,170 @@
|
||||
info face="Bitstream Vera Sans Mono" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=32 base=26 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="vera_sans_mono32_0.png"
|
||||
chars count=166
|
||||
char id=32 x=24 y=132 width=3 height=32 xoffset=-1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=33 x=28 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=34 x=449 y=99 width=7 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=35 x=0 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=36 x=392 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=37 x=36 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=38 x=233 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=39 x=52 y=132 width=2 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=40 x=471 y=99 width=6 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=41 x=499 y=99 width=6 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=42 x=104 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=43 x=32 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=44 x=506 y=99 width=4 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=45 x=441 y=99 width=7 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=46 x=36 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=47 x=62 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=48 x=406 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=49 x=78 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=50 x=122 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=51 x=420 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=52 x=377 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=53 x=434 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=54 x=467 y=33 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=55 x=481 y=33 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=56 x=495 y=33 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=57 x=0 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=58 x=40 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=59 x=15 y=132 width=4 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=60 x=332 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=61 x=362 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=62 x=107 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=63 x=190 y=99 width=11 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=64 x=267 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=65 x=284 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=66 x=14 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=67 x=28 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=68 x=42 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=69 x=39 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=70 x=65 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=71 x=137 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=72 x=266 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=73 x=202 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=74 x=448 y=66 width=12 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=75 x=479 y=0 width=15 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=76 x=56 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=77 x=227 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=78 x=70 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=79 x=257 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=80 x=84 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=81 x=287 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=82 x=495 y=0 width=15 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=83 x=98 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=84 x=0 y=33 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=85 x=112 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=86 x=16 y=33 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=87 x=198 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=88 x=318 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=89 x=18 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=90 x=77 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=91 x=457 y=99 width=6 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=92 x=197 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=93 x=492 y=99 width=6 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=94 x=367 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=95 x=302 y=33 width=14 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=96 x=417 y=99 width=7 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=97 x=126 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=98 x=140 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=99 x=0 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=100 x=154 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=101 x=242 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=102 x=487 y=66 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=103 x=168 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=104 x=91 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=105 x=182 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=106 x=313 y=99 width=9 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=107 x=196 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=108 x=210 y=66 width=13 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=109 x=431 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=110 x=52 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=111 x=224 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=112 x=238 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=113 x=252 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=114 x=214 y=99 width=11 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=115 x=178 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=116 x=280 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=117 x=474 y=66 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=118 x=317 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=119 x=180 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=120 x=447 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=121 x=347 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=122 x=154 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=123 x=142 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=124 x=55 y=132 width=2 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=125 x=226 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=126 x=272 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=160 x=44 y=132 width=3 height=32 xoffset=-1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=161 x=20 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=162 x=461 y=66 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=163 x=294 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=164 x=500 y=66 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=165 x=162 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=166 x=509 y=33 width=2 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=167 x=130 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=168 x=293 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=169 x=126 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=170 x=260 y=99 width=10 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=171 x=13 y=99 width=12 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=172 x=212 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=173 x=425 y=99 width=7 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=174 x=108 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=175 x=408 y=99 width=8 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=176 x=343 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=177 x=182 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=178 x=390 y=99 width=8 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=179 x=372 y=99 width=8 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=180 x=433 y=99 width=7 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=181 x=167 y=33 width=14 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=182 x=308 y=66 width=13 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=183 x=32 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=184 x=464 y=99 width=6 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=185 x=363 y=99 width=8 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=186 x=282 y=99 width=10 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=187 x=26 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=188 x=301 y=0 width=16 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=189 x=463 y=0 width=15 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=190 x=250 y=0 width=16 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=191 x=166 y=99 width=11 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=215 x=322 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=216 x=144 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=223 x=336 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=247 x=415 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=248 x=383 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=710 x=333 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=711 x=353 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=730 x=399 y=99 width=8 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=732 x=303 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=733 x=323 y=99 width=9 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=937 x=92 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=960 x=335 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8211 x=90 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8212 x=72 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8216 x=0 y=132 width=4 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8217 x=5 y=132 width=4 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8218 x=10 y=132 width=4 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8220 x=271 y=99 width=10 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8221 x=238 y=99 width=10 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8222 x=249 y=99 width=10 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8226 x=381 y=99 width=8 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8230 x=399 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8249 x=478 y=99 width=6 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8250 x=485 y=99 width=6 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8706 x=117 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8710 x=54 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8719 x=350 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8721 x=364 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8722 x=392 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8725 x=47 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8729 x=48 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8730 x=351 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8734 x=216 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8747 x=378 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8776 x=407 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8800 x=422 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8804 x=437 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=8805 x=452 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
|
||||
char id=9674 x=152 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
|
BIN
font/vera_sans_mono32_0.png
Normal file
BIN
font/vera_sans_mono32_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
56
font/vera_sans_mono48.bmfc
Normal file
56
font/vera_sans_mono48.bmfc
Normal file
@ -0,0 +1,56 @@
|
||||
# AngelCode Bitmap Font Generator configuration file
|
||||
fileVersion=1
|
||||
|
||||
# font settings
|
||||
fontName=Bitstream Vera Sans Mono
|
||||
fontFile=
|
||||
charSet=0
|
||||
fontSize=48
|
||||
aa=1
|
||||
scaleH=100
|
||||
useSmoothing=1
|
||||
isBold=0
|
||||
isItalic=0
|
||||
useUnicode=1
|
||||
disableBoxChars=1
|
||||
outputInvalidCharGlyph=0
|
||||
dontIncludeKerningPairs=0
|
||||
useHinting=1
|
||||
renderFromOutline=0
|
||||
useClearType=1
|
||||
|
||||
# character alignment
|
||||
paddingDown=0
|
||||
paddingUp=0
|
||||
paddingRight=0
|
||||
paddingLeft=0
|
||||
spacingHoriz=1
|
||||
spacingVert=1
|
||||
useFixedHeight=1
|
||||
forceZero=0
|
||||
|
||||
# output file
|
||||
outWidth=512
|
||||
outHeight=512
|
||||
outBitDepth=32
|
||||
fontDescFormat=0
|
||||
fourChnlPacked=0
|
||||
textureFormat=png
|
||||
textureCompression=0
|
||||
alphaChnl=1
|
||||
redChnl=0
|
||||
greenChnl=0
|
||||
blueChnl=0
|
||||
invA=0
|
||||
invR=0
|
||||
invG=0
|
||||
invB=0
|
||||
|
||||
# outline
|
||||
outlineThickness=0
|
||||
|
||||
# selected chars
|
||||
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
|
||||
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
|
||||
|
||||
# imported icon images
|
170
font/vera_sans_mono48.fnt
Normal file
170
font/vera_sans_mono48.fnt
Normal file
@ -0,0 +1,170 @@
|
||||
info face="Bitstream Vera Sans Mono" size=48 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=48 base=38 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="vera_sans_mono48_0.png"
|
||||
chars count=166
|
||||
char id=32 x=173 y=294 width=3 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=33 x=149 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=34 x=371 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=35 x=0 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=36 x=438 y=147 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=37 x=320 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=38 x=216 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=39 x=155 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=40 x=501 y=147 width=10 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=41 x=501 y=0 width=10 height=48 xoffset=7 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=42 x=0 y=245 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=43 x=456 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=44 x=110 y=294 width=8 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=45 x=496 y=245 width=12 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=46 x=135 y=294 width=7 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=47 x=481 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=48 x=0 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=49 x=20 y=245 width=19 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=50 x=273 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=51 x=22 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=52 x=408 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=53 x=417 y=147 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=54 x=66 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=55 x=88 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=56 x=110 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=57 x=132 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=58 x=127 y=294 width=7 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=59 x=101 y=294 width=8 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=60 x=192 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=61 x=216 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=62 x=240 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=63 x=116 y=245 width=18 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=64 x=294 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=65 x=424 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=66 x=154 y=147 width=21 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=67 x=210 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=68 x=176 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=69 x=42 y=196 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=70 x=314 y=196 width=19 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=71 x=198 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=72 x=44 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=73 x=135 y=245 width=18 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=74 x=59 y=245 width=18 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=75 x=0 y=98 width=23 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=76 x=0 y=196 width=20 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=77 x=48 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=78 x=220 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=79 x=242 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=80 x=264 y=147 width=21 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=81 x=286 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=82 x=168 y=98 width=23 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=83 x=308 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=84 x=268 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=85 x=330 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=86 x=432 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=87 x=27 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=88 x=372 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=89 x=398 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=90 x=238 y=98 width=22 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=91 x=0 y=294 width=11 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=92 x=352 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=93 x=24 y=294 width=11 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=94 x=144 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=95 x=215 y=98 width=22 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=96 x=12 y=294 width=11 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=97 x=374 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=98 x=105 y=196 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=99 x=454 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=100 x=168 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=101 x=261 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=102 x=414 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=103 x=84 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=104 x=394 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=105 x=63 y=196 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=106 x=311 y=245 width=14 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=107 x=283 y=98 width=21 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=108 x=189 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=109 x=360 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=110 x=474 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=111 x=305 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=112 x=459 y=147 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=113 x=480 y=147 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=114 x=40 y=245 width=18 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=115 x=208 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=116 x=21 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=117 x=434 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=118 x=192 y=98 width=22 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=119 x=189 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=120 x=288 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=121 x=96 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=122 x=374 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=123 x=190 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=124 x=161 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=125 x=154 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=126 x=264 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=160 x=177 y=294 width=3 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=161 x=167 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=162 x=334 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=163 x=349 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=164 x=354 y=196 width=19 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=165 x=450 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=166 x=143 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=167 x=97 y=245 width=18 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=168 x=441 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=169 x=162 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=170 x=279 y=245 width=15 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=171 x=252 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=172 x=72 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=173 x=483 y=245 width=12 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=174 x=81 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=175 x=427 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=176 x=356 y=245 width=14 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=177 x=336 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=178 x=399 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=179 x=469 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=180 x=60 y=294 width=11 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=181 x=371 y=98 width=21 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=182 x=126 y=196 width=20 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=183 x=119 y=294 width=7 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=184 x=72 y=294 width=10 height=48 xoffset=7 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=185 x=385 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=186 x=226 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=187 x=231 y=196 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=188 x=48 y=49 width=23 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=189 x=120 y=49 width=23 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=190 x=96 y=49 width=23 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=191 x=78 y=245 width=18 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=215 x=147 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=216 x=346 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=223 x=393 y=98 width=21 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=247 x=120 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=248 x=476 y=0 width=24 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=710 x=326 y=245 width=14 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=711 x=341 y=245 width=14 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=730 x=413 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=732 x=295 y=245 width=15 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=733 x=262 y=245 width=16 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=937 x=24 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=960 x=480 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8211 x=135 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8212 x=108 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8216 x=503 y=98 width=8 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8217 x=83 y=294 width=8 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8218 x=92 y=294 width=8 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8220 x=494 y=196 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8221 x=244 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8222 x=172 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8226 x=455 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8230 x=384 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8249 x=36 y=294 width=11 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8250 x=48 y=294 width=11 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8706 x=294 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8710 x=54 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8719 x=396 y=147 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8721 x=415 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8722 x=312 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8725 x=437 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8729 x=504 y=49 width=7 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8730 x=144 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8734 x=242 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8747 x=459 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8776 x=168 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8800 x=72 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8804 x=24 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=8805 x=0 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
|
||||
char id=9674 x=327 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
|
BIN
font/vera_sans_mono48_0.png
Normal file
BIN
font/vera_sans_mono48_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
@ -41,6 +41,9 @@ AppFrame::AppFrame() :
|
||||
|
||||
this->SetSizer(vbox);
|
||||
|
||||
waterfallCanvas->SetFocusFromKbd();
|
||||
waterfallCanvas->SetFocus();
|
||||
|
||||
// SetIcon(wxICON(sample));
|
||||
|
||||
// Make a menubar
|
||||
|
@ -21,12 +21,11 @@ bool CubicSDR::OnInit() {
|
||||
|
||||
frequency = DEFAULT_FREQ;
|
||||
|
||||
demodulatorTest = demodMgr.newThread();
|
||||
demodulatorTest->getParams().frequency = DEFAULT_FREQ;
|
||||
demodulatorTest->run();
|
||||
|
||||
audioVisualQueue = new DemodulatorThreadOutputQueue();
|
||||
demodulatorTest->setVisualOutputQueue(audioVisualQueue);
|
||||
audioVisualQueue->set_max_num_items(1);
|
||||
|
||||
// demodulatorTest[0]->setVisualOutputQueue(audioVisualQueue);
|
||||
// demodMgr.setActiveDemodulator(demodulatorTest[0]);
|
||||
|
||||
threadCmdQueueSDR = new SDRThreadCommandQueue;
|
||||
sdrThread = new SDRThread(threadCmdQueueSDR);
|
||||
@ -35,13 +34,12 @@ bool CubicSDR::OnInit() {
|
||||
|
||||
iqPostDataQueue = new SDRThreadIQDataQueue;
|
||||
iqVisualQueue = new SDRThreadIQDataQueue;
|
||||
iqVisualQueue->set_max_num_items(1);
|
||||
|
||||
sdrThread->setIQDataOutQueue(iqPostDataQueue);
|
||||
sdrPostThread->setIQDataInQueue(iqPostDataQueue);
|
||||
sdrPostThread->setIQVisualQueue(iqVisualQueue);
|
||||
|
||||
sdrPostThread->bindDemodulator(demodulatorTest);
|
||||
|
||||
t_PostSDR = new std::thread(&SDRPostThread::threadMain, sdrPostThread);
|
||||
t_SDR = new std::thread(&SDRThread::threadMain, sdrThread);
|
||||
|
||||
@ -77,7 +75,6 @@ int CubicSDR::OnExit() {
|
||||
|
||||
demodMgr.terminateAll();
|
||||
|
||||
|
||||
delete threadCmdQueueSDR;
|
||||
|
||||
delete iqVisualQueue;
|
||||
@ -112,3 +109,29 @@ void CubicSDR::setFrequency(unsigned int freq) {
|
||||
int CubicSDR::getFrequency() {
|
||||
return frequency;
|
||||
}
|
||||
|
||||
DemodulatorThreadOutputQueue* CubicSDR::getAudioVisualQueue() {
|
||||
return audioVisualQueue;
|
||||
}
|
||||
|
||||
SDRThreadIQDataQueue* CubicSDR::getIQVisualQueue() {
|
||||
return iqVisualQueue;
|
||||
}
|
||||
|
||||
DemodulatorMgr &CubicSDR::getDemodMgr() {
|
||||
return demodMgr;
|
||||
}
|
||||
|
||||
void CubicSDR::bindDemodulator(DemodulatorInstance *demod) {
|
||||
if (!demod) {
|
||||
return;
|
||||
}
|
||||
sdrPostThread->bindDemodulator(demod);
|
||||
}
|
||||
|
||||
void CubicSDR::removeDemodulator(DemodulatorInstance *demod) {
|
||||
if (!demod) {
|
||||
return;
|
||||
}
|
||||
sdrPostThread->removeDemodulator(demod);
|
||||
}
|
||||
|
@ -15,11 +15,13 @@
|
||||
#include "AudioThread.h"
|
||||
#include "DemodulatorMgr.h"
|
||||
|
||||
#define NUM_DEMODULATORS 1
|
||||
|
||||
class CubicSDR: public wxApp {
|
||||
public:
|
||||
CubicSDR() :
|
||||
m_glContext(NULL), t_PostSDR(NULL), t_SDR(NULL), audioVisualQueue(NULL), threadCmdQueueSDR(NULL), iqVisualQueue(NULL), frequency(
|
||||
DEFAULT_FREQ), sdrPostThread(NULL), iqPostDataQueue(NULL), sdrThread(NULL), demodulatorTest(NULL) {
|
||||
DEFAULT_FREQ), sdrPostThread(NULL), iqPostDataQueue(NULL), sdrThread(NULL) {
|
||||
|
||||
}
|
||||
|
||||
@ -31,21 +33,12 @@ public:
|
||||
void setFrequency(unsigned int freq);
|
||||
int getFrequency();
|
||||
|
||||
DemodulatorThreadOutputQueue* getAudioVisualQueue() {
|
||||
return audioVisualQueue;
|
||||
}
|
||||
DemodulatorThreadOutputQueue* getAudioVisualQueue();
|
||||
SDRThreadIQDataQueue* getIQVisualQueue();
|
||||
DemodulatorMgr &getDemodMgr();
|
||||
|
||||
SDRThreadIQDataQueue* getIQVisualQueue() {
|
||||
return iqVisualQueue;
|
||||
}
|
||||
|
||||
DemodulatorInstance *getDemodTest() {
|
||||
return demodulatorTest;
|
||||
}
|
||||
|
||||
DemodulatorMgr &getDemodMgr() {
|
||||
return demodMgr;
|
||||
}
|
||||
void bindDemodulator(DemodulatorInstance *demod);
|
||||
void removeDemodulator(DemodulatorInstance *demod);
|
||||
|
||||
private:
|
||||
PrimaryGLContext *m_glContext;
|
||||
@ -54,8 +47,6 @@ private:
|
||||
|
||||
unsigned int frequency;
|
||||
|
||||
DemodulatorInstance *demodulatorTest;
|
||||
|
||||
SDRThread *sdrThread;
|
||||
SDRPostThread *sdrPostThread;
|
||||
|
||||
|
@ -1,9 +1,10 @@
|
||||
#include "AudioThread.h"
|
||||
#include "CubicSDRDefs.h"
|
||||
#include <vector>
|
||||
#include "DemodulatorThread.h"
|
||||
|
||||
AudioThread::AudioThread(AudioThreadInputQueue *inputQueue) :
|
||||
inputQueue(inputQueue), terminated(false), audio_queue_ptr(0), underflow_count(0) {
|
||||
AudioThread::AudioThread(AudioThreadInputQueue *inputQueue, DemodulatorThreadCommandQueue* threadQueueNotify) :
|
||||
inputQueue(inputQueue), terminated(false), audio_queue_ptr(0), underflow_count(0), threadQueueNotify(threadQueueNotify) {
|
||||
|
||||
}
|
||||
|
||||
@ -135,6 +136,10 @@ void AudioThread::threadMain() {
|
||||
}
|
||||
|
||||
std::cout << "Audio thread done." << std::endl;
|
||||
|
||||
DemodulatorThreadCommand tCmd(DemodulatorThreadCommand::DEMOD_THREAD_CMD_AUDIO_TERMINATED);
|
||||
tCmd.context = this;
|
||||
threadQueueNotify->push(tCmd);
|
||||
}
|
||||
|
||||
void AudioThread::terminate() {
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "AudioThread.h"
|
||||
#include "ThreadQueue.h"
|
||||
#include "RtAudio.h"
|
||||
#include "DemodDefs.h"
|
||||
|
||||
class AudioThreadInput {
|
||||
public:
|
||||
@ -32,7 +33,7 @@ public:
|
||||
std::atomic<unsigned int> audio_queue_ptr;
|
||||
std::atomic<unsigned int> underflow_count;
|
||||
|
||||
AudioThread(AudioThreadInputQueue *inputQueue);
|
||||
AudioThread(AudioThreadInputQueue *inputQueue, DemodulatorThreadCommandQueue* threadQueueNotify);
|
||||
~AudioThread();
|
||||
|
||||
void threadMain();
|
||||
@ -42,5 +43,6 @@ private:
|
||||
AudioThreadInputQueue *inputQueue;
|
||||
RtAudio dac;
|
||||
std::atomic<bool> terminated;
|
||||
DemodulatorThreadCommandQueue* threadQueueNotify;
|
||||
};
|
||||
|
||||
|
87
src/demod/DemodDefs.h
Normal file
87
src/demod/DemodDefs.h
Normal file
@ -0,0 +1,87 @@
|
||||
#pragma once
|
||||
|
||||
#include "ThreadQueue.h"
|
||||
|
||||
enum DemodulatorType {
|
||||
DEMOD_TYPE_NULL,
|
||||
DEMOD_TYPE_AM,
|
||||
DEMOD_TYPE_FM,
|
||||
DEMOD_TYPE_LSB,
|
||||
DEMOD_TYPE_USB
|
||||
};
|
||||
|
||||
class DemodulatorThread;
|
||||
class DemodulatorThreadCommand {
|
||||
public:
|
||||
enum DemodulatorThreadCommandEnum {
|
||||
DEMOD_THREAD_CMD_NULL,
|
||||
DEMOD_THREAD_CMD_SET_BANDWIDTH,
|
||||
DEMOD_THREAD_CMD_SET_FREQUENCY,
|
||||
DEMOD_THREAD_CMD_DEMOD_TERMINATED,
|
||||
DEMOD_THREAD_CMD_AUDIO_TERMINATED
|
||||
};
|
||||
|
||||
DemodulatorThreadCommand() :
|
||||
cmd(DEMOD_THREAD_CMD_NULL), int_value(0), context(NULL) {
|
||||
|
||||
}
|
||||
|
||||
DemodulatorThreadCommand(DemodulatorThreadCommandEnum cmd) :
|
||||
cmd(cmd), int_value(0), context(NULL) {
|
||||
|
||||
}
|
||||
|
||||
DemodulatorThreadCommandEnum cmd;
|
||||
void *context;
|
||||
int int_value;
|
||||
};
|
||||
|
||||
class DemodulatorThreadIQData {
|
||||
public:
|
||||
unsigned int frequency;
|
||||
unsigned int bandwidth;
|
||||
std::vector<signed char> data;
|
||||
|
||||
DemodulatorThreadIQData() :
|
||||
frequency(0), bandwidth(0) {
|
||||
|
||||
}
|
||||
|
||||
DemodulatorThreadIQData(unsigned int bandwidth, unsigned int frequency,
|
||||
std::vector<signed char> data) :
|
||||
data(data), frequency(frequency), bandwidth(bandwidth) {
|
||||
|
||||
}
|
||||
|
||||
~DemodulatorThreadIQData() {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
class DemodulatorThreadAudioData {
|
||||
public:
|
||||
unsigned int frequency;
|
||||
unsigned int sampleRate;
|
||||
unsigned char channels;
|
||||
|
||||
std::vector<float> data;
|
||||
|
||||
DemodulatorThreadAudioData() :
|
||||
sampleRate(0), frequency(0), channels(0) {
|
||||
|
||||
}
|
||||
|
||||
DemodulatorThreadAudioData(unsigned int frequency, unsigned int sampleRate,
|
||||
std::vector<float> data) :
|
||||
data(data), sampleRate(sampleRate), frequency(frequency), channels(
|
||||
1) {
|
||||
|
||||
}
|
||||
|
||||
~DemodulatorThreadAudioData() {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
typedef ThreadQueue<DemodulatorThreadIQData> DemodulatorThreadInputQueue;
|
||||
typedef ThreadQueue<DemodulatorThreadCommand> DemodulatorThreadCommandQueue;
|
@ -1,28 +1,31 @@
|
||||
#include <DemodulatorMgr.h>
|
||||
#include <sstream>
|
||||
#include <algorithm>
|
||||
#include "CubicSDR.h"
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
|
||||
DemodulatorInstance::DemodulatorInstance() :
|
||||
t_Demod(NULL), t_Audio(NULL), threadQueueDemod(NULL), demodulatorThread(NULL) {
|
||||
t_Demod(NULL), t_Audio(NULL), threadQueueDemod(NULL), demodulatorThread(NULL), terminated(false), audioTerminated(false), demodTerminated(
|
||||
false) {
|
||||
|
||||
label = new std::string("Unnamed");
|
||||
threadQueueDemod = new DemodulatorThreadInputQueue;
|
||||
threadQueueCommand = new DemodulatorThreadCommandQueue;
|
||||
demodulatorThread = new DemodulatorThread(threadQueueDemod);
|
||||
threadQueueNotify = new DemodulatorThreadCommandQueue;
|
||||
demodulatorThread = new DemodulatorThread(threadQueueDemod, threadQueueNotify);
|
||||
demodulatorThread->setCommandQueue(threadQueueCommand);
|
||||
audioInputQueue = new AudioThreadInputQueue;
|
||||
audioThread = new AudioThread(audioInputQueue);
|
||||
audioThread = new AudioThread(audioInputQueue, threadQueueNotify);
|
||||
demodulatorThread->setAudioInputQueue(audioInputQueue);
|
||||
}
|
||||
|
||||
DemodulatorInstance::~DemodulatorInstance() {
|
||||
|
||||
delete audioThread;
|
||||
delete t_Audio;
|
||||
delete demodulatorThread;
|
||||
|
||||
delete audioInputQueue;
|
||||
delete threadQueueDemod;
|
||||
delete demodulatorThread;
|
||||
#ifndef __APPLE__
|
||||
delete t_Demod;
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemodulatorInstance::setVisualOutputQueue(DemodulatorThreadOutputQueue *tQueue) {
|
||||
@ -30,46 +33,32 @@ void DemodulatorInstance::setVisualOutputQueue(DemodulatorThreadOutputQueue *tQu
|
||||
}
|
||||
|
||||
void DemodulatorInstance::run() {
|
||||
if (t_Demod) {
|
||||
terminate();
|
||||
|
||||
delete threadQueueDemod;
|
||||
delete demodulatorThread;
|
||||
delete t_Demod;
|
||||
delete audioThread;
|
||||
delete audioInputQueue;
|
||||
delete t_Audio;
|
||||
|
||||
threadQueueDemod = new DemodulatorThreadInputQueue;
|
||||
threadQueueCommand = new DemodulatorThreadCommandQueue;
|
||||
demodulatorThread = new DemodulatorThread(threadQueueDemod);
|
||||
demodulatorThread->setCommandQueue(threadQueueCommand);
|
||||
|
||||
audioInputQueue = new AudioThreadInputQueue;
|
||||
audioThread = new AudioThread(audioInputQueue);
|
||||
|
||||
demodulatorThread->setAudioInputQueue(audioInputQueue);
|
||||
}
|
||||
|
||||
t_Audio = new std::thread(&AudioThread::threadMain, audioThread);
|
||||
|
||||
#ifdef __APPLE__ // Already using pthreads, might as well do some custom init..
|
||||
pthread_attr_t attr;
|
||||
size_t size;
|
||||
pthread_attr_t attr;
|
||||
size_t size;
|
||||
|
||||
pthread_attr_init(&attr);
|
||||
pthread_attr_setstacksize(&attr, 2048000);
|
||||
pthread_attr_getstacksize(&attr, &size);
|
||||
pthread_attr_init(&attr);
|
||||
pthread_attr_setstacksize(&attr, 2048000);
|
||||
pthread_attr_getstacksize(&attr, &size);
|
||||
pthread_create(&t_Demod, &attr, &DemodulatorThread::pthread_helper, demodulatorThread);
|
||||
pthread_attr_destroy(&attr);
|
||||
pthread_attr_destroy(&attr);
|
||||
|
||||
std::cout << "Initialized demodulator stack size of " << size << std::endl;
|
||||
std::cout << "Initialized demodulator stack size of " << size << std::endl;
|
||||
|
||||
#else
|
||||
t_Demod = new std::thread(&DemodulatorThread::threadMain, demodulatorThread);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemodulatorInstance::updateLabel(int freq) {
|
||||
std::stringstream newLabel;
|
||||
newLabel.precision(3);
|
||||
newLabel << std::fixed << ((float) freq / 1000000.0);
|
||||
setLabel(newLabel.str());
|
||||
}
|
||||
|
||||
DemodulatorThreadCommandQueue *DemodulatorInstance::getCommandQueue() {
|
||||
return threadQueueCommand;
|
||||
}
|
||||
@ -81,17 +70,29 @@ DemodulatorThreadParameters &DemodulatorInstance::getParams() {
|
||||
void DemodulatorInstance::terminate() {
|
||||
std::cout << "Terminating demodulator thread.." << std::endl;
|
||||
demodulatorThread->terminate();
|
||||
#ifdef __APPLE__
|
||||
pthread_join(t_Demod,NULL);
|
||||
#else
|
||||
t_Demod->join();
|
||||
#endif
|
||||
//#ifdef __APPLE__
|
||||
// pthread_join(t_Demod,NULL);
|
||||
//#else
|
||||
//#endif
|
||||
std::cout << "Terminating demodulator audio thread.." << std::endl;
|
||||
audioThread->terminate();
|
||||
t_Audio->join();
|
||||
}
|
||||
|
||||
DemodulatorMgr::DemodulatorMgr() {
|
||||
std::string DemodulatorInstance::getLabel() {
|
||||
return *(label.load());
|
||||
}
|
||||
|
||||
void DemodulatorInstance::setLabel(std::string labelStr) {
|
||||
std::string *newLabel = new std::string;
|
||||
newLabel->append(labelStr);
|
||||
std::string *oldLabel;
|
||||
oldLabel = label;
|
||||
label = newLabel;
|
||||
delete oldLabel;
|
||||
}
|
||||
|
||||
DemodulatorMgr::DemodulatorMgr() :
|
||||
activeDemodulator(NULL), lastActiveDemodulator(NULL), activeVisualDemodulator(NULL) {
|
||||
|
||||
}
|
||||
|
||||
@ -101,16 +102,20 @@ DemodulatorMgr::~DemodulatorMgr() {
|
||||
|
||||
DemodulatorInstance *DemodulatorMgr::newThread() {
|
||||
DemodulatorInstance *newDemod = new DemodulatorInstance;
|
||||
|
||||
demods.push_back(newDemod);
|
||||
|
||||
std::stringstream label;
|
||||
label << demods.size();
|
||||
newDemod->setLabel(label.str());
|
||||
|
||||
return newDemod;
|
||||
}
|
||||
|
||||
void DemodulatorMgr::terminateAll() {
|
||||
while (demods.size()) {
|
||||
DemodulatorInstance *d = demods.back();
|
||||
demods.pop_back();
|
||||
d->terminate();
|
||||
delete d;
|
||||
deleteThread(d);
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,6 +123,31 @@ std::vector<DemodulatorInstance *> &DemodulatorMgr::getDemodulators() {
|
||||
return demods;
|
||||
}
|
||||
|
||||
void DemodulatorMgr::deleteThread(DemodulatorInstance *demod) {
|
||||
std::vector<DemodulatorInstance *>::iterator i;
|
||||
|
||||
i = std::find(demods.begin(), demods.end(), demod);
|
||||
|
||||
if (activeDemodulator == demod) {
|
||||
activeDemodulator = NULL;
|
||||
}
|
||||
if (lastActiveDemodulator == demod) {
|
||||
lastActiveDemodulator = NULL;
|
||||
}
|
||||
if (activeVisualDemodulator == demod) {
|
||||
activeVisualDemodulator = NULL;
|
||||
}
|
||||
|
||||
if (i != demods.end()) {
|
||||
demods.erase(i);
|
||||
demod->terminate();
|
||||
}
|
||||
|
||||
demods_deleted.push_back(demod);
|
||||
|
||||
garbageCollect();
|
||||
}
|
||||
|
||||
std::vector<DemodulatorInstance *> *DemodulatorMgr::getDemodulatorsAt(int freq, int bandwidth) {
|
||||
std::vector<DemodulatorInstance *> *foundDemods = new std::vector<DemodulatorInstance *>();
|
||||
|
||||
@ -137,3 +167,88 @@ std::vector<DemodulatorInstance *> *DemodulatorMgr::getDemodulatorsAt(int freq,
|
||||
|
||||
return foundDemods;
|
||||
}
|
||||
|
||||
void DemodulatorMgr::setActiveDemodulator(DemodulatorInstance *demod, bool temporary) {
|
||||
if (!temporary) {
|
||||
if (activeDemodulator != NULL) {
|
||||
lastActiveDemodulator = activeDemodulator;
|
||||
} else {
|
||||
lastActiveDemodulator = demod;
|
||||
}
|
||||
}
|
||||
|
||||
if (activeVisualDemodulator) {
|
||||
activeVisualDemodulator->setVisualOutputQueue(NULL);
|
||||
}
|
||||
if (demod) {
|
||||
demod->setVisualOutputQueue(wxGetApp().getAudioVisualQueue());
|
||||
activeVisualDemodulator = demod;
|
||||
} else {
|
||||
DemodulatorInstance *last = getLastActiveDemodulator();
|
||||
if (last) {
|
||||
last->setVisualOutputQueue(wxGetApp().getAudioVisualQueue());
|
||||
}
|
||||
activeVisualDemodulator = last;
|
||||
}
|
||||
|
||||
activeDemodulator = demod;
|
||||
|
||||
garbageCollect();
|
||||
}
|
||||
|
||||
DemodulatorInstance *DemodulatorMgr::getActiveDemodulator() {
|
||||
return activeDemodulator;
|
||||
}
|
||||
|
||||
DemodulatorInstance *DemodulatorMgr::getLastActiveDemodulator() {
|
||||
if (std::find(demods.begin(), demods.end(), lastActiveDemodulator) == demods.end()) {
|
||||
lastActiveDemodulator = activeDemodulator;
|
||||
}
|
||||
|
||||
return lastActiveDemodulator;
|
||||
}
|
||||
|
||||
void DemodulatorMgr::garbageCollect() {
|
||||
if (demods_deleted.size()) {
|
||||
std::vector<DemodulatorInstance *>::iterator i;
|
||||
|
||||
for (i = demods_deleted.begin(); i != demods_deleted.end(); i++) {
|
||||
if ((*i)->isTerminated()) {
|
||||
DemodulatorInstance *deleted = (*i);
|
||||
demods_deleted.erase(i);
|
||||
|
||||
std::cout << "Garbage collected demodulator instance " << deleted->getLabel() << std::endl;
|
||||
|
||||
delete deleted;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool DemodulatorInstance::isTerminated() {
|
||||
while (!threadQueueNotify->empty()) {
|
||||
DemodulatorThreadCommand cmd;
|
||||
threadQueueNotify->pop(cmd);
|
||||
|
||||
switch (cmd.cmd) {
|
||||
case DemodulatorThreadCommand::DEMOD_THREAD_CMD_AUDIO_TERMINATED:
|
||||
audioThread = NULL;
|
||||
t_Audio->join();
|
||||
audioTerminated = true;
|
||||
break;
|
||||
case DemodulatorThreadCommand::DEMOD_THREAD_CMD_DEMOD_TERMINATED:
|
||||
demodulatorThread = NULL;
|
||||
t_Demod->join();
|
||||
demodTerminated = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
terminated = audioTerminated && demodTerminated;
|
||||
|
||||
return terminated;
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@ public:
|
||||
|
||||
DemodulatorThreadInputQueue* threadQueueDemod;
|
||||
DemodulatorThreadCommandQueue* threadQueueCommand;
|
||||
DemodulatorThreadCommandQueue* threadQueueNotify;
|
||||
DemodulatorThread *demodulatorThread;
|
||||
#ifdef __APPLE__
|
||||
pthread_t t_Demod;
|
||||
@ -32,6 +33,17 @@ public:
|
||||
|
||||
void run();
|
||||
void terminate();
|
||||
std::string getLabel();
|
||||
void setLabel(std::string labelStr);
|
||||
|
||||
bool isTerminated();
|
||||
void updateLabel(int freq);
|
||||
|
||||
private:
|
||||
std::atomic<std::string *> label;
|
||||
bool terminated;
|
||||
bool demodTerminated;
|
||||
bool audioTerminated;
|
||||
};
|
||||
|
||||
class DemodulatorMgr {
|
||||
@ -42,8 +54,21 @@ public:
|
||||
DemodulatorInstance *newThread();
|
||||
std::vector<DemodulatorInstance *> &getDemodulators();
|
||||
std::vector<DemodulatorInstance *> *getDemodulatorsAt(int freq, int bandwidth);
|
||||
void deleteThread(DemodulatorInstance *);
|
||||
|
||||
void terminateAll();
|
||||
|
||||
void setActiveDemodulator(DemodulatorInstance *demod, bool temporary = true);
|
||||
DemodulatorInstance *getActiveDemodulator();
|
||||
DemodulatorInstance *getLastActiveDemodulator();
|
||||
|
||||
private:
|
||||
void garbageCollect();
|
||||
|
||||
std::vector<DemodulatorInstance *> demods;
|
||||
std::vector<DemodulatorInstance *> demods_deleted;
|
||||
DemodulatorInstance *activeDemodulator;
|
||||
DemodulatorInstance *lastActiveDemodulator;
|
||||
DemodulatorInstance *activeVisualDemodulator;
|
||||
|
||||
};
|
||||
|
@ -3,12 +3,12 @@
|
||||
#include <vector>
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <pthread.h>
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
|
||||
DemodulatorThread::DemodulatorThread(DemodulatorThreadInputQueue* pQueue) :
|
||||
DemodulatorThread::DemodulatorThread(DemodulatorThreadInputQueue* pQueue, DemodulatorThreadCommandQueue* threadQueueNotify) :
|
||||
inputQueue(pQueue), visOutQueue(NULL), terminated(false), initialized(false), audio_resampler(NULL), resample_ratio(1), audio_resample_ratio(
|
||||
1), resampler(NULL), commandQueue(NULL), fir_filter(NULL), audioInputQueue(NULL) {
|
||||
1), resampler(NULL), commandQueue(NULL), fir_filter(NULL), audioInputQueue(NULL), threadQueueNotify(threadQueueNotify) {
|
||||
|
||||
float kf = 0.5; // modulation factor
|
||||
fdem = freqdem_create(kf);
|
||||
@ -249,13 +249,14 @@ void DemodulatorThread::threadMain() {
|
||||
}
|
||||
|
||||
std::cout << "Demodulator thread done." << std::endl;
|
||||
DemodulatorThreadCommand tCmd(DemodulatorThreadCommand::DEMOD_THREAD_CMD_DEMOD_TERMINATED);
|
||||
tCmd.context = this;
|
||||
threadQueueNotify->push(tCmd);
|
||||
}
|
||||
|
||||
void DemodulatorThread::terminate() {
|
||||
terminated = true;
|
||||
DemodulatorThreadIQData inp; // push dummy to nudge queue
|
||||
inputQueue->push(inp);
|
||||
|
||||
workerThread->terminate();
|
||||
t_Worker->join();
|
||||
}
|
||||
|
@ -11,116 +11,36 @@
|
||||
#include "wx/thread.h"
|
||||
|
||||
#include "liquid/liquid.h"
|
||||
#include "AudioThread.h"
|
||||
#include "ThreadQueue.h"
|
||||
#include "CubicSDRDefs.h"
|
||||
#include "DemodulatorWorkerThread.h"
|
||||
|
||||
enum DemodulatorType {
|
||||
DEMOD_TYPE_NULL,
|
||||
DEMOD_TYPE_AM,
|
||||
DEMOD_TYPE_FM,
|
||||
DEMOD_TYPE_LSB,
|
||||
DEMOD_TYPE_USB
|
||||
};
|
||||
|
||||
class DemodulatorThreadCommand {
|
||||
public:
|
||||
enum DemodulatorThreadCommandEnum {
|
||||
DEMOD_THREAD_CMD_NULL,
|
||||
DEMOD_THREAD_CMD_SET_BANDWIDTH,
|
||||
DEMOD_THREAD_CMD_SET_FREQUENCY
|
||||
};
|
||||
|
||||
DemodulatorThreadCommand() :
|
||||
cmd(DEMOD_THREAD_CMD_NULL), int_value(0) {
|
||||
|
||||
}
|
||||
|
||||
DemodulatorThreadCommand(DemodulatorThreadCommandEnum cmd) :
|
||||
cmd(cmd), int_value(0) {
|
||||
|
||||
}
|
||||
|
||||
DemodulatorThreadCommandEnum cmd;
|
||||
int int_value;
|
||||
};
|
||||
|
||||
class DemodulatorThreadIQData {
|
||||
public:
|
||||
unsigned int frequency;
|
||||
unsigned int bandwidth;
|
||||
std::vector<signed char> data;
|
||||
|
||||
DemodulatorThreadIQData() :
|
||||
frequency(0), bandwidth(0) {
|
||||
|
||||
}
|
||||
|
||||
DemodulatorThreadIQData(unsigned int bandwidth, unsigned int frequency,
|
||||
std::vector<signed char> data) :
|
||||
data(data), frequency(frequency), bandwidth(bandwidth) {
|
||||
|
||||
}
|
||||
|
||||
~DemodulatorThreadIQData() {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
class DemodulatorThreadAudioData {
|
||||
public:
|
||||
unsigned int frequency;
|
||||
unsigned int sampleRate;
|
||||
unsigned char channels;
|
||||
|
||||
std::vector<float> data;
|
||||
|
||||
DemodulatorThreadAudioData() :
|
||||
sampleRate(0), frequency(0), channels(0) {
|
||||
|
||||
}
|
||||
|
||||
DemodulatorThreadAudioData(unsigned int frequency, unsigned int sampleRate,
|
||||
std::vector<float> data) :
|
||||
data(data), sampleRate(sampleRate), frequency(frequency), channels(
|
||||
1) {
|
||||
|
||||
}
|
||||
|
||||
~DemodulatorThreadAudioData() {
|
||||
|
||||
}
|
||||
};
|
||||
#include "DemodDefs.h"
|
||||
|
||||
class DemodulatorThreadParameters {
|
||||
public:
|
||||
unsigned int frequency;
|
||||
unsigned int inputRate;
|
||||
unsigned int bandwidth; // set equal to disable second stage re-sampling?
|
||||
unsigned int audioSampleRate;
|
||||
unsigned int frequency;
|
||||
unsigned int inputRate;
|
||||
unsigned int bandwidth; // set equal to disable second stage re-sampling?
|
||||
unsigned int audioSampleRate;
|
||||
|
||||
DemodulatorType demodType;
|
||||
DemodulatorType demodType;
|
||||
|
||||
DemodulatorThreadParameters() :
|
||||
frequency(0), inputRate(SRATE), bandwidth(200000), audioSampleRate(
|
||||
AUDIO_FREQUENCY), demodType(DEMOD_TYPE_FM) {
|
||||
DemodulatorThreadParameters() :
|
||||
frequency(0), inputRate(SRATE), bandwidth(200000), audioSampleRate(
|
||||
AUDIO_FREQUENCY), demodType(DEMOD_TYPE_FM) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
~DemodulatorThreadParameters() {
|
||||
~DemodulatorThreadParameters() {
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
typedef ThreadQueue<DemodulatorThreadIQData> DemodulatorThreadInputQueue;
|
||||
typedef ThreadQueue<AudioThreadInput> DemodulatorThreadOutputQueue;
|
||||
typedef ThreadQueue<DemodulatorThreadCommand> DemodulatorThreadCommandQueue;
|
||||
|
||||
class DemodulatorThread {
|
||||
public:
|
||||
|
||||
DemodulatorThread(DemodulatorThreadInputQueue* pQueue);
|
||||
DemodulatorThread(DemodulatorThreadInputQueue* pQueue, DemodulatorThreadCommandQueue* threadQueueNotify);
|
||||
~DemodulatorThread();
|
||||
|
||||
#ifdef __APPLE__
|
||||
@ -131,7 +51,6 @@ public:
|
||||
|
||||
void setVisualOutputQueue(DemodulatorThreadOutputQueue *tQueue) {
|
||||
visOutQueue = tQueue;
|
||||
visOutQueue->set_max_num_items(1);
|
||||
}
|
||||
|
||||
void setCommandQueue(DemodulatorThreadCommandQueue *tQueue) {
|
||||
@ -185,4 +104,5 @@ protected:
|
||||
|
||||
DemodulatorThreadWorkerCommandQueue *workerQueue;
|
||||
DemodulatorThreadWorkerResultQueue *workerResults;
|
||||
DemodulatorThreadCommandQueue* threadQueueNotify;
|
||||
};
|
||||
|
@ -4,13 +4,38 @@
|
||||
#include "CubicSDR.h"
|
||||
|
||||
SDRPostThread::SDRPostThread() :
|
||||
iqDataInQueue(NULL), iqDataOutQueue(NULL), iqVisualQueue(NULL), terminated(false) {
|
||||
dev = NULL;
|
||||
sample_rate = SRATE;
|
||||
iqDataInQueue(NULL), iqDataOutQueue(NULL), iqVisualQueue(NULL), terminated(false), dcFilter(NULL), sample_rate(SRATE) {
|
||||
}
|
||||
|
||||
SDRPostThread::~SDRPostThread() {
|
||||
rtlsdr_close(dev);
|
||||
}
|
||||
|
||||
void SDRPostThread::bindDemodulator(DemodulatorInstance *demod) {
|
||||
demodulators.push_back(demod);
|
||||
}
|
||||
|
||||
void SDRPostThread::removeDemodulator(DemodulatorInstance *demod) {
|
||||
if (!demod) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<DemodulatorInstance *>::iterator i;
|
||||
|
||||
i = std::find(demodulators.begin(), demodulators.end(), demod);
|
||||
|
||||
if (i != demodulators.end()) {
|
||||
demodulators.erase(i);
|
||||
}
|
||||
}
|
||||
|
||||
void SDRPostThread::setIQDataInQueue(SDRThreadIQDataQueue* iqDataQueue) {
|
||||
iqDataInQueue = iqDataQueue;
|
||||
}
|
||||
void SDRPostThread::setIQDataOutQueue(SDRThreadIQDataQueue* iqDataQueue) {
|
||||
iqDataOutQueue = iqDataQueue;
|
||||
}
|
||||
void SDRPostThread::setIQVisualQueue(SDRThreadIQDataQueue *iqVisQueue) {
|
||||
iqVisualQueue = iqVisQueue;
|
||||
}
|
||||
|
||||
void SDRPostThread::threadMain() {
|
||||
@ -50,10 +75,15 @@ void SDRPostThread::threadMain() {
|
||||
}
|
||||
|
||||
if (iqVisualQueue != NULL) {
|
||||
iqVisualQueue.load()->push(dataOut);
|
||||
if (iqVisualQueue.load()->empty()) {
|
||||
iqVisualQueue.load()->push(dataOut);
|
||||
}
|
||||
}
|
||||
|
||||
if (demodulators.size()) {
|
||||
DemodulatorThreadIQData dummyDataOut;
|
||||
dummyDataOut.frequency = data_in.frequency;
|
||||
dummyDataOut.bandwidth = data_in.bandwidth;
|
||||
DemodulatorThreadIQData demodDataOut;
|
||||
demodDataOut.frequency = data_in.frequency;
|
||||
demodDataOut.bandwidth = data_in.bandwidth;
|
||||
@ -62,6 +92,14 @@ void SDRPostThread::threadMain() {
|
||||
for (int i = 0, iMax = demodulators.size(); i < iMax; i++) {
|
||||
DemodulatorInstance *demod = demodulators[i];
|
||||
DemodulatorThreadInputQueue *demodQueue = demod->threadQueueDemod;
|
||||
|
||||
if (demod->getParams().frequency != data_in.frequency) {
|
||||
if (abs(data_in.frequency - demod->getParams().frequency) > (int) ((float) ((float) SRATE / 2.0) * 1.15)) {
|
||||
demodQueue->push(dummyDataOut);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
demodQueue->push(demodDataOut);
|
||||
}
|
||||
}
|
||||
|
@ -1,37 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include "SDRThread.h"
|
||||
#include <algorithm>
|
||||
|
||||
class SDRPostThread {
|
||||
public:
|
||||
rtlsdr_dev_t *dev;
|
||||
|
||||
SDRPostThread();
|
||||
~SDRPostThread();
|
||||
|
||||
int enumerate_rtl();
|
||||
void bindDemodulator(DemodulatorInstance *demod);
|
||||
void removeDemodulator(DemodulatorInstance *demod);
|
||||
|
||||
void bindDemodulator(DemodulatorInstance *demod) {
|
||||
demodulators.push_back(demod);
|
||||
}
|
||||
void setIQDataInQueue(SDRThreadIQDataQueue* iqDataQueue);
|
||||
void setIQDataOutQueue(SDRThreadIQDataQueue* iqDataQueue);
|
||||
void setIQVisualQueue(SDRThreadIQDataQueue *iqVisQueue);
|
||||
|
||||
void threadMain();
|
||||
|
||||
void setIQDataInQueue(SDRThreadIQDataQueue* iqDataQueue) {
|
||||
iqDataInQueue = iqDataQueue;
|
||||
}
|
||||
void setIQDataOutQueue(SDRThreadIQDataQueue* iqDataQueue) {
|
||||
iqDataOutQueue = iqDataQueue;
|
||||
}
|
||||
void setIQVisualQueue(SDRThreadIQDataQueue *iqVisQueue) {
|
||||
iqVisualQueue = iqVisQueue;
|
||||
iqVisualQueue.load()->set_max_num_items(1);
|
||||
}
|
||||
|
||||
void terminate();
|
||||
protected:
|
||||
|
||||
uint32_t sample_rate;
|
||||
protected:
|
||||
uint32_t sample_rate;
|
||||
|
||||
std::atomic<SDRThreadIQDataQueue*> iqDataOutQueue;
|
||||
std::atomic<SDRThreadIQDataQueue*> iqDataInQueue;
|
||||
|
449
src/util/GLFont.cpp
Normal file
449
src/util/GLFont.cpp
Normal file
@ -0,0 +1,449 @@
|
||||
#include "GLFont.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <algorithm>
|
||||
|
||||
GLFontChar::GLFontChar() :
|
||||
id(0), x(0), y(0), width(0), height(0), xadvance(0), xoffset(0), yoffset(0), index(0), aspect(1) {
|
||||
|
||||
}
|
||||
|
||||
GLFontChar::~GLFontChar() {
|
||||
|
||||
}
|
||||
|
||||
void GLFontChar::setId(int idval) {
|
||||
id = idval;
|
||||
}
|
||||
|
||||
int GLFontChar::getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
void GLFontChar::setXOffset(int xofs) {
|
||||
xoffset = xofs;
|
||||
}
|
||||
|
||||
int GLFontChar::getXOffset() {
|
||||
return xoffset;
|
||||
}
|
||||
|
||||
void GLFontChar::setYOffset(int yofs) {
|
||||
yoffset = yofs;
|
||||
}
|
||||
|
||||
int GLFontChar::getYOffset() {
|
||||
return yoffset;
|
||||
}
|
||||
|
||||
void GLFontChar::setX(int xpos) {
|
||||
x = xpos;
|
||||
}
|
||||
|
||||
int GLFontChar::getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
void GLFontChar::setY(int ypos) {
|
||||
y = ypos;
|
||||
}
|
||||
|
||||
int GLFontChar::getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
void GLFontChar::setWidth(int w) {
|
||||
width = w;
|
||||
if (width && height) {
|
||||
aspect = (float) width / (float) height;
|
||||
}
|
||||
}
|
||||
|
||||
int GLFontChar::getWidth() {
|
||||
return width;
|
||||
}
|
||||
|
||||
void GLFontChar::setHeight(int h) {
|
||||
height = h;
|
||||
if (width && height) {
|
||||
aspect = (float) width / (float) height;
|
||||
}
|
||||
}
|
||||
|
||||
int GLFontChar::getHeight() {
|
||||
return height;
|
||||
}
|
||||
|
||||
void GLFontChar::setXAdvance(int xadv) {
|
||||
xadvance = xadv;
|
||||
}
|
||||
|
||||
int GLFontChar::getXAdvance() {
|
||||
return xadvance;
|
||||
}
|
||||
|
||||
float GLFontChar::getAspect() {
|
||||
return aspect;
|
||||
}
|
||||
|
||||
void GLFontChar::setIndex(unsigned int idx) {
|
||||
index = idx;
|
||||
}
|
||||
|
||||
int GLFontChar::getIndex() {
|
||||
return index;
|
||||
}
|
||||
|
||||
GLFont::GLFont() :
|
||||
numCharacters(0), imageHeight(0), imageWidth(0), base(0), lineHeight(0), texId(0), loaded(false) {
|
||||
|
||||
}
|
||||
|
||||
GLFont::~GLFont() {
|
||||
|
||||
}
|
||||
|
||||
std::string GLFont::nextParam(std::istringstream &str) {
|
||||
std::string param_str;
|
||||
|
||||
str >> param_str;
|
||||
|
||||
if (param_str.find('"') != std::string::npos) {
|
||||
std::string rest;
|
||||
while (!str.eof() && (std::count(param_str.begin(), param_str.end(), '"') % 2)) {
|
||||
str >> rest;
|
||||
param_str.append(" " + rest);
|
||||
}
|
||||
}
|
||||
|
||||
return param_str;
|
||||
}
|
||||
|
||||
std::string GLFont::getParamKey(std::string param_str) {
|
||||
std::string keyName;
|
||||
|
||||
int eqpos = param_str.find("=");
|
||||
|
||||
if (eqpos != std::string::npos) {
|
||||
keyName = param_str.substr(0, eqpos);
|
||||
}
|
||||
|
||||
return keyName;
|
||||
}
|
||||
|
||||
std::string GLFont::getParamValue(std::string param_str) {
|
||||
std::string value;
|
||||
|
||||
int eqpos = param_str.find("=");
|
||||
|
||||
if (eqpos != std::string::npos) {
|
||||
value = param_str.substr(eqpos + 1);
|
||||
}
|
||||
|
||||
if (value[0] == '"' && value[value.length() - 1] == '"') {
|
||||
value = value.substr(1, value.length() - 2);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
void GLFont::loadFont(std::string fontFile) {
|
||||
fontFileSource = fontFile;
|
||||
|
||||
std::ifstream input;
|
||||
input.open(fontFileSource.c_str(), std::ios::in);
|
||||
|
||||
std::string op;
|
||||
|
||||
while (!input.eof()) {
|
||||
input >> op;
|
||||
|
||||
if (op == "info") {
|
||||
std::string info_param_str;
|
||||
getline(input, info_param_str);
|
||||
std::istringstream info_param(info_param_str);
|
||||
|
||||
while (!info_param.eof()) {
|
||||
std::string param = nextParam(info_param);
|
||||
|
||||
std::string paramKey = getParamKey(param);
|
||||
std::string paramValue = getParamValue(param);
|
||||
|
||||
if (paramKey == "face") {
|
||||
fontName = paramValue;
|
||||
}
|
||||
|
||||
// std::cout << "[" << paramKey << "] = '" << paramValue << "'" << std::endl;
|
||||
}
|
||||
} else if (op == "common") {
|
||||
std::string common_param_str;
|
||||
getline(input, common_param_str);
|
||||
std::istringstream common_param(common_param_str);
|
||||
|
||||
while (!common_param.eof()) {
|
||||
std::string param = nextParam(common_param);
|
||||
|
||||
std::string paramKey = getParamKey(param);
|
||||
std::istringstream paramValue(getParamValue(param));
|
||||
|
||||
if (paramKey == "lineHeight") {
|
||||
paramValue >> lineHeight;
|
||||
} else if (paramKey == "base") {
|
||||
paramValue >> base;
|
||||
} else if (paramKey == "scaleW") {
|
||||
paramValue >> imageWidth;
|
||||
} else if (paramKey == "scaleH") {
|
||||
paramValue >> imageHeight;
|
||||
}
|
||||
// std::cout << "[" << paramKey << "] = '" << getParamValue(param) << "'" << std::endl;
|
||||
}
|
||||
} else if (op == "page") {
|
||||
std::string page_param_str;
|
||||
getline(input, page_param_str);
|
||||
std::istringstream page_param(page_param_str);
|
||||
|
||||
while (!page_param.eof()) {
|
||||
std::string param = nextParam(page_param);
|
||||
|
||||
std::string paramKey = getParamKey(param);
|
||||
std::string paramValue = getParamValue(param);
|
||||
|
||||
if (paramKey == "file") {
|
||||
imageFile = paramValue;
|
||||
}
|
||||
// std::cout << "[" << paramKey << "] = '" << paramValue << "'" << std::endl;
|
||||
}
|
||||
|
||||
} else if (op == "char") {
|
||||
std::string char_param_str;
|
||||
getline(input, char_param_str);
|
||||
std::istringstream char_param(char_param_str);
|
||||
|
||||
GLFontChar *newChar = new GLFontChar;
|
||||
|
||||
while (!char_param.eof()) {
|
||||
std::string param = nextParam(char_param);
|
||||
|
||||
std::string paramKey = getParamKey(param);
|
||||
std::istringstream paramValue(getParamValue(param));
|
||||
|
||||
int val;
|
||||
|
||||
if (paramKey == "id") {
|
||||
paramValue >> val;
|
||||
newChar->setId(val);
|
||||
} else if (paramKey == "x") {
|
||||
paramValue >> val;
|
||||
newChar->setX(val);
|
||||
} else if (paramKey == "y") {
|
||||
paramValue >> val;
|
||||
newChar->setY(val);
|
||||
} else if (paramKey == "width") {
|
||||
paramValue >> val;
|
||||
newChar->setWidth(val);
|
||||
} else if (paramKey == "height") {
|
||||
paramValue >> val;
|
||||
newChar->setHeight(val);
|
||||
} else if (paramKey == "xoffset") {
|
||||
paramValue >> val;
|
||||
newChar->setXOffset(val);
|
||||
} else if (paramKey == "yoffset") {
|
||||
paramValue >> val;
|
||||
newChar->setYOffset(val);
|
||||
} else if (paramKey == "xadvance") {
|
||||
paramValue >> val;
|
||||
newChar->setXAdvance(val);
|
||||
}
|
||||
|
||||
// std::cout << "[" << paramKey << "] = '" << getParamValue(param) << "'" << std::endl;
|
||||
}
|
||||
|
||||
characters[newChar->getId()] = newChar;
|
||||
|
||||
} else {
|
||||
std::string dummy;
|
||||
getline(input, dummy);
|
||||
}
|
||||
}
|
||||
|
||||
if (imageFile != "" && imageWidth && imageHeight && characters.size()) {
|
||||
|
||||
// Load file and decode image.
|
||||
std::vector<unsigned char> image;
|
||||
unsigned int imgWidth = imageWidth, imgHeight = imageHeight;
|
||||
unsigned error = lodepng::decode(image, imgWidth, imgHeight, imageFile);
|
||||
|
||||
glGenTextures(1, &texId);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glBindTexture(GL_TEXTURE_2D, texId);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, 4, imageWidth, imageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, &image[0]);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
std::map<int, GLFontChar *>::iterator char_i;
|
||||
|
||||
gl_vertices.resize(characters.size() * 8); // one quad per char
|
||||
gl_uv.resize(characters.size() * 8);
|
||||
|
||||
unsigned int ofs = 0;
|
||||
for (char_i = characters.begin(); char_i != characters.end(); char_i++) {
|
||||
int charId = (*char_i).first;
|
||||
GLFontChar *fchar = (*char_i).second;
|
||||
|
||||
float faspect = fchar->getAspect();
|
||||
|
||||
float uv_xpos = (float) fchar->getX() / (float) imageWidth;
|
||||
float uv_ypos = ((float) fchar->getY() / (float) imageHeight);
|
||||
float uv_xofs = (float) fchar->getWidth() / (float) imageWidth;
|
||||
float uv_yofs = ((float) fchar->getHeight() / (float) imageHeight);
|
||||
|
||||
gl_vertices[ofs] = 0;
|
||||
gl_vertices[ofs + 1] = 0;
|
||||
gl_uv[ofs] = uv_xpos;
|
||||
gl_uv[ofs + 1] = uv_ypos + uv_yofs;
|
||||
|
||||
gl_vertices[ofs + 2] = faspect;
|
||||
gl_vertices[ofs + 3] = 0;
|
||||
gl_uv[ofs + 2] = uv_xpos + uv_xofs;
|
||||
gl_uv[ofs + 3] = uv_ypos + uv_yofs;
|
||||
|
||||
gl_vertices[ofs + 4] = faspect;
|
||||
gl_vertices[ofs + 5] = 1;
|
||||
gl_uv[ofs + 4] = uv_xpos + uv_xofs;
|
||||
gl_uv[ofs + 5] = uv_ypos;
|
||||
|
||||
gl_vertices[ofs + 6] = 0;
|
||||
gl_vertices[ofs + 7] = 1;
|
||||
gl_uv[ofs + 6] = uv_xpos;
|
||||
gl_uv[ofs + 7] = uv_ypos;
|
||||
|
||||
fchar->setIndex(ofs);
|
||||
|
||||
ofs += 8;
|
||||
}
|
||||
|
||||
std::cout << "Loaded font '" << fontName << "' from '" << fontFileSource << "', parsed " << characters.size() << " characters." << std::endl;
|
||||
loaded = true;
|
||||
} else {
|
||||
std::cout << "Error loading font file " << fontFileSource << std::endl;
|
||||
}
|
||||
|
||||
input.close();
|
||||
}
|
||||
|
||||
bool GLFont::isLoaded() {
|
||||
return loaded;
|
||||
}
|
||||
|
||||
float GLFont::getStringWidth(std::string str, float size, float viewAspect) {
|
||||
|
||||
float scalex = size / viewAspect;
|
||||
|
||||
float width = 0;
|
||||
|
||||
for (int i = 0, iMax = str.length(); i < iMax; i++) {
|
||||
int charId = str.at(i);
|
||||
|
||||
if (characters.find(charId) == characters.end()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
GLFontChar *fchar = characters[charId];
|
||||
|
||||
float ofsx = (float) fchar->getXOffset() / (float) imageWidth;
|
||||
float advx = (float) fchar->getXAdvance() / (float) imageWidth;
|
||||
|
||||
if (charId == 32) {
|
||||
advx = characters['_']->getAspect();
|
||||
}
|
||||
|
||||
width += fchar->getAspect() + advx + ofsx;
|
||||
}
|
||||
|
||||
width *= scalex;
|
||||
|
||||
return width;
|
||||
}
|
||||
|
||||
void GLFont::drawString(std::string str, float xpos, float ypos, int pxHeight, Align hAlign, Align vAlign) {
|
||||
|
||||
GLint vp[4];
|
||||
|
||||
pxHeight *= 2;
|
||||
|
||||
glGetIntegerv( GL_VIEWPORT, vp);
|
||||
|
||||
float size = (float) pxHeight / (float) vp[3];
|
||||
float viewAspect = (float) vp[2] / (float) vp[3];
|
||||
float msgWidth = getStringWidth(str, size, viewAspect);
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(xpos, ypos, 0.0f);
|
||||
|
||||
switch (hAlign) {
|
||||
case GLFONT_ALIGN_TOP:
|
||||
glTranslatef(0.0, -size, 0.0);
|
||||
break;
|
||||
case GLFONT_ALIGN_CENTER:
|
||||
glTranslatef(0.0, -size/2.0, 0.0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (vAlign) {
|
||||
case GLFONT_ALIGN_RIGHT:
|
||||
glTranslatef(-msgWidth, 0.0, 0.0);
|
||||
break;
|
||||
case GLFONT_ALIGN_CENTER:
|
||||
glTranslatef(-msgWidth / 2.0, 0.0, 0.0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
glPushMatrix();
|
||||
glScalef(size / viewAspect, size, 1.0f);
|
||||
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glBindTexture(GL_TEXTURE_2D, texId);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glVertexPointer(2, GL_FLOAT, 0, &gl_vertices[0]);
|
||||
glTexCoordPointer(2, GL_FLOAT, 0, &gl_uv[0]);
|
||||
|
||||
for (int i = 0, iMax = str.length(); i < iMax; i++) {
|
||||
int charId = str.at(i);
|
||||
|
||||
if (characters.find(charId) == characters.end()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
GLFontChar *fchar = characters[charId];
|
||||
|
||||
float ofsx = (float) fchar->getXOffset() / (float) imageWidth;
|
||||
float advx = (float) fchar->getXAdvance() / (float) imageWidth;
|
||||
|
||||
if (charId == 32) {
|
||||
advx = characters['_']->getAspect();
|
||||
}
|
||||
|
||||
glTranslatef(ofsx, 0.0, 0.0);
|
||||
glDrawArrays(GL_QUADS, fchar->getIndex() / 2, 4);
|
||||
glTranslatef(fchar->getAspect() + advx, 0.0, 0.0);
|
||||
}
|
||||
|
||||
glDisableClientState(GL_VERTEX_ARRAY);
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glPopMatrix();
|
||||
glPopMatrix();
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
91
src/util/GLFont.h
Normal file
91
src/util/GLFont.h
Normal file
@ -0,0 +1,91 @@
|
||||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include "lodepng.h"
|
||||
#include "wx/glcanvas.h"
|
||||
|
||||
|
||||
class GLFontChar {
|
||||
public:
|
||||
GLFontChar();
|
||||
~GLFontChar();
|
||||
|
||||
void setId(int idval);
|
||||
int getId();
|
||||
|
||||
void setXOffset(int xofs);
|
||||
int getXOffset();
|
||||
|
||||
void setYOffset(int yofs);
|
||||
int getYOffset();
|
||||
|
||||
void setX(int xpos);
|
||||
int getX();
|
||||
|
||||
void setY(int ypos);
|
||||
int getY();
|
||||
|
||||
void setWidth(int w);
|
||||
int getWidth();
|
||||
|
||||
void setHeight(int h);
|
||||
int getHeight();
|
||||
|
||||
void setXAdvance(int xadv);
|
||||
int getXAdvance();
|
||||
|
||||
float getAspect();
|
||||
|
||||
void setIndex(unsigned int idx);
|
||||
int getIndex();
|
||||
|
||||
private:
|
||||
int id;
|
||||
int x, y, width, height;
|
||||
int xoffset, yoffset;
|
||||
int xadvance;
|
||||
float aspect;
|
||||
int index;
|
||||
};
|
||||
|
||||
class GLFont {
|
||||
public:
|
||||
enum Align {
|
||||
GLFONT_ALIGN_LEFT,
|
||||
GLFONT_ALIGN_RIGHT,
|
||||
GLFONT_ALIGN_CENTER,
|
||||
GLFONT_ALIGN_TOP,
|
||||
GLFONT_ALIGN_BOTTOM
|
||||
};
|
||||
|
||||
GLFont();
|
||||
~GLFont();
|
||||
void loadFont(std::string fontFile);
|
||||
bool isLoaded();
|
||||
|
||||
float getStringWidth(std::string str, float size, float viewAspect);
|
||||
void drawString(std::string str, float xpos, float ypos, int pxHeight, Align hAlign = GLFONT_ALIGN_LEFT, Align vAlign = GLFONT_ALIGN_TOP);
|
||||
|
||||
private:
|
||||
std::string nextParam(std::istringstream &str);
|
||||
std::string getParamKey(std::string param_str);
|
||||
std::string getParamValue(std::string param_str);
|
||||
|
||||
int numCharacters;
|
||||
int lineHeight;
|
||||
int base;
|
||||
int imageWidth, imageHeight;
|
||||
bool loaded;
|
||||
|
||||
std::map<int, GLFontChar *> characters;
|
||||
|
||||
std::vector<float> gl_vertices;
|
||||
std::vector<float> gl_uv;
|
||||
|
||||
std::string fontName;
|
||||
std::string imageFile;
|
||||
std::string fontFileSource;
|
||||
GLuint texId;
|
||||
};
|
@ -15,6 +15,8 @@
|
||||
#include "AppFrame.h"
|
||||
#include <algorithm>
|
||||
|
||||
GLFont PrimaryGLContext::fonts[GLFONT_MAX];
|
||||
|
||||
wxString PrimaryGLContext::glGetwxString(GLenum name) {
|
||||
const GLubyte *v = glGetString(name);
|
||||
if (v == 0) {
|
||||
@ -56,3 +58,189 @@ PrimaryGLContext::PrimaryGLContext(wxGLCanvas *canvas, wxGLContext *sharedContex
|
||||
CheckGLError();
|
||||
}
|
||||
|
||||
GLFont &PrimaryGLContext::getFont(GLFontSize esize) {
|
||||
if (!fonts[esize].isLoaded()) {
|
||||
|
||||
std::string fontName;
|
||||
switch (esize) {
|
||||
case GLFONT_SIZE12:
|
||||
fontName = "vera_sans_mono12.fnt";
|
||||
break;
|
||||
case GLFONT_SIZE16:
|
||||
fontName = "vera_sans_mono16.fnt";
|
||||
break;
|
||||
case GLFONT_SIZE18:
|
||||
fontName = "vera_sans_mono18.fnt";
|
||||
break;
|
||||
case GLFONT_SIZE24:
|
||||
fontName = "vera_sans_mono24.fnt";
|
||||
break;
|
||||
case GLFONT_SIZE32:
|
||||
fontName = "vera_sans_mono32.fnt";
|
||||
break;
|
||||
case GLFONT_SIZE48:
|
||||
fontName = "vera_sans_mono48.fnt";
|
||||
break;
|
||||
}
|
||||
|
||||
fonts[esize].loadFont(fontName);
|
||||
}
|
||||
|
||||
return fonts[esize];
|
||||
}
|
||||
|
||||
void PrimaryGLContext::DrawDemodInfo(DemodulatorInstance *demod, float r, float g, float b) {
|
||||
if (!demod) {
|
||||
return;
|
||||
}
|
||||
|
||||
GLint vp[4];
|
||||
glGetIntegerv( GL_VIEWPORT, vp);
|
||||
|
||||
float viewHeight = (float) vp[3];
|
||||
float viewWidth = (float) vp[2];
|
||||
|
||||
float uxPos = (float) (demod->getParams().frequency - (wxGetApp().getFrequency() - SRATE / 2)) / (float) SRATE;
|
||||
uxPos = (uxPos - 0.5) * 2.0;
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
|
||||
glColor4f(r, g, b, 0.6);
|
||||
|
||||
float ofs = ((float) demod->getParams().bandwidth) / (float) SRATE;
|
||||
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
|
||||
glColor4f(r, g, b, 0.2);
|
||||
glBegin(GL_QUADS);
|
||||
glVertex3f(uxPos - ofs, 1.0, 0.0);
|
||||
glVertex3f(uxPos - ofs, -1.0, 0.0);
|
||||
|
||||
glVertex3f(uxPos + ofs, -1.0, 0.0);
|
||||
glVertex3f(uxPos + ofs, 1.0, 0.0);
|
||||
glEnd();
|
||||
|
||||
float labelHeight = 20.0 / viewHeight;
|
||||
|
||||
float hPos = -1.0 + labelHeight;
|
||||
|
||||
if (ofs * 2.0 < 16.0 / viewWidth) {
|
||||
ofs = 16.0 / viewWidth;
|
||||
|
||||
glColor4f(r, g, b, 0.2);
|
||||
glBegin(GL_QUADS);
|
||||
glVertex3f(uxPos - ofs, hPos + labelHeight, 0.0);
|
||||
glVertex3f(uxPos - ofs, -1.0, 0.0);
|
||||
|
||||
glVertex3f(uxPos + ofs, -1.0, 0.0);
|
||||
glVertex3f(uxPos + ofs, hPos + labelHeight, 0.0);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
glColor4f(1.0, 1.0, 1.0, 0.8);
|
||||
|
||||
getFont(PrimaryGLContext::GLFONT_SIZE16).drawString(demod->getLabel(), uxPos, hPos, 16, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER);
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
}
|
||||
|
||||
void PrimaryGLContext::DrawDemod(DemodulatorInstance *demod, float r, float g, float b) {
|
||||
if (!demod) {
|
||||
return;
|
||||
}
|
||||
|
||||
float uxPos = (float) (demod->getParams().frequency - (wxGetApp().getFrequency() - SRATE / 2)) / (float) SRATE;
|
||||
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
|
||||
glColor4f(r, g, b, 0.6);
|
||||
|
||||
glBegin(GL_LINES);
|
||||
glVertex3f((uxPos - 0.5) * 2.0, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0, -1.0, 0.0);
|
||||
|
||||
float ofs = ((float) demod->getParams().bandwidth) / (float) SRATE;
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
|
||||
|
||||
glEnd();
|
||||
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
|
||||
glColor4f(r, g, b, 0.2);
|
||||
glBegin(GL_QUADS);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
|
||||
glEnd();
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
}
|
||||
|
||||
void PrimaryGLContext::DrawFreqSelector(float uxPos, float r, float g, float b, float w) {
|
||||
DemodulatorInstance *demod = wxGetApp().getDemodMgr().getLastActiveDemodulator();
|
||||
|
||||
int bw = 0;
|
||||
|
||||
if (!demod) {
|
||||
bw = defaultDemodParams.bandwidth;
|
||||
} else {
|
||||
bw = demod->getParams().bandwidth;
|
||||
}
|
||||
|
||||
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
|
||||
glColor4f(r, g, b, 0.6);
|
||||
|
||||
glBegin(GL_LINES);
|
||||
glVertex3f((uxPos - 0.5) * 2.0, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0, -1.0, 0.0);
|
||||
|
||||
float ofs;
|
||||
|
||||
if (w) {
|
||||
ofs = w;
|
||||
} else {
|
||||
ofs = ((float) bw) / (float) SRATE;
|
||||
}
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
|
||||
|
||||
glEnd();
|
||||
glDisable(GL_BLEND);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
}
|
||||
|
||||
void PrimaryGLContext::BeginDraw() {
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
void PrimaryGLContext::EndDraw() {
|
||||
glFlush();
|
||||
|
||||
CheckGLError();
|
||||
}
|
||||
|
||||
|
@ -7,13 +7,27 @@
|
||||
#include <queue>
|
||||
|
||||
#include "CubicSDRDefs.h"
|
||||
#include "GLFont.h"
|
||||
#include "DemodulatorMgr.h"
|
||||
|
||||
class PrimaryGLContext: public wxGLContext {
|
||||
public:
|
||||
enum GLFontSize { GLFONT_SIZE12, GLFONT_SIZE16, GLFONT_SIZE18, GLFONT_SIZE24, GLFONT_SIZE32, GLFONT_SIZE48, GLFONT_MAX };
|
||||
PrimaryGLContext(wxGLCanvas *canvas, wxGLContext *sharedContext);
|
||||
|
||||
static wxString glGetwxString(GLenum name);
|
||||
static void CheckGLError();
|
||||
|
||||
void BeginDraw();
|
||||
void EndDraw();
|
||||
|
||||
void DrawFreqSelector(float uxPos, float r = 1, float g = 1, float b = 1, float w=0);
|
||||
void DrawDemod(DemodulatorInstance *demod, float r = 1, float g = 1, float b = 1);
|
||||
void DrawDemodInfo(DemodulatorInstance *demod, float r = 1, float g = 1, float b = 1);
|
||||
|
||||
static GLFont &getFont(GLFontSize esize);
|
||||
|
||||
private:
|
||||
static GLFont fonts[GLFONT_MAX];
|
||||
DemodulatorThreadParameters defaultDemodParams;
|
||||
};
|
||||
|
@ -16,7 +16,6 @@
|
||||
#include <algorithm>
|
||||
|
||||
wxBEGIN_EVENT_TABLE(ScopeCanvas, wxGLCanvas) EVT_PAINT(ScopeCanvas::OnPaint)
|
||||
EVT_KEY_DOWN(ScopeCanvas::OnKeyDown)
|
||||
EVT_IDLE(ScopeCanvas::OnIdle)
|
||||
wxEND_EVENT_TABLE()
|
||||
|
||||
@ -48,35 +47,6 @@ void ScopeCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
|
||||
SwapBuffers();
|
||||
}
|
||||
|
||||
void ScopeCanvas::OnKeyDown(wxKeyEvent& event) {
|
||||
float angle = 5.0;
|
||||
|
||||
unsigned int freq;
|
||||
switch (event.GetKeyCode()) {
|
||||
case WXK_RIGHT:
|
||||
freq = wxGetApp().getFrequency();
|
||||
freq += SRATE/2;
|
||||
wxGetApp().setFrequency(freq);
|
||||
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
|
||||
break;
|
||||
case WXK_LEFT:
|
||||
freq = wxGetApp().getFrequency();
|
||||
freq -= SRATE/2;
|
||||
wxGetApp().setFrequency(freq);
|
||||
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
|
||||
break;
|
||||
case WXK_DOWN:
|
||||
break;
|
||||
case WXK_UP:
|
||||
break;
|
||||
case WXK_SPACE:
|
||||
break;
|
||||
default:
|
||||
event.Skip();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void ScopeCanvas::OnIdle(wxIdleEvent &event) {
|
||||
// timer.update();
|
||||
// frameTimer += timer.lastUpdateSeconds();
|
||||
|
@ -21,7 +21,6 @@ public:
|
||||
void setWaveformPoints(std::vector<float> &waveform_points_in);
|
||||
private:
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
void OnKeyDown(wxKeyEvent& event);
|
||||
|
||||
void OnIdle(wxIdleEvent &event);
|
||||
|
||||
|
@ -17,12 +17,10 @@
|
||||
#include <wx/numformatter.h>
|
||||
|
||||
wxBEGIN_EVENT_TABLE(SpectrumCanvas, wxGLCanvas) EVT_PAINT(SpectrumCanvas::OnPaint)
|
||||
EVT_KEY_DOWN(SpectrumCanvas::OnKeyDown)
|
||||
EVT_IDLE(SpectrumCanvas::OnIdle)
|
||||
EVT_MOTION(SpectrumCanvas::mouseMoved)
|
||||
EVT_LEFT_DOWN(SpectrumCanvas::mouseDown)
|
||||
EVT_LEFT_UP(SpectrumCanvas::mouseReleased)
|
||||
//EVT_RIGHT_DOWN(SpectrumCanvas::rightClick)
|
||||
EVT_LEAVE_WINDOW(SpectrumCanvas::mouseLeftWindow)
|
||||
EVT_MOUSEWHEEL(SpectrumCanvas::mouseWheelMoved)
|
||||
wxEND_EVENT_TABLE()
|
||||
@ -61,38 +59,18 @@ void SpectrumCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
|
||||
glContext->SetCurrent(*this);
|
||||
glViewport(0, 0, ClientSize.x, ClientSize.y);
|
||||
|
||||
glContext->BeginDraw();
|
||||
glContext->Draw(spectrum_points);
|
||||
|
||||
SwapBuffers();
|
||||
}
|
||||
std::vector<DemodulatorInstance *> &demods = wxGetApp().getDemodMgr().getDemodulators();
|
||||
|
||||
void SpectrumCanvas::OnKeyDown(wxKeyEvent& event) {
|
||||
float angle = 5.0;
|
||||
|
||||
unsigned int freq;
|
||||
switch (event.GetKeyCode()) {
|
||||
case WXK_RIGHT:
|
||||
freq = wxGetApp().getFrequency();
|
||||
freq += SRATE/2;
|
||||
wxGetApp().setFrequency(freq);
|
||||
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
|
||||
break;
|
||||
case WXK_LEFT:
|
||||
freq = wxGetApp().getFrequency();
|
||||
freq -= SRATE/2;
|
||||
wxGetApp().setFrequency(freq);
|
||||
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
|
||||
break;
|
||||
case WXK_DOWN:
|
||||
break;
|
||||
case WXK_UP:
|
||||
break;
|
||||
case WXK_SPACE:
|
||||
break;
|
||||
default:
|
||||
event.Skip();
|
||||
return;
|
||||
for (int i = 0, iMax = demods.size(); i < iMax; i++) {
|
||||
glContext->DrawDemodInfo(demods[i]);
|
||||
}
|
||||
|
||||
glContext->EndDraw();
|
||||
|
||||
SwapBuffers();
|
||||
}
|
||||
|
||||
void SpectrumCanvas::setData(std::vector<signed char> *data) {
|
||||
@ -119,12 +97,12 @@ void SpectrumCanvas::setData(std::vector<signed char> *data) {
|
||||
|
||||
int n;
|
||||
for (int i = 0, iMax = FFT_SIZE / 2; i < iMax; i++) {
|
||||
n = (i == 0)?1:i;
|
||||
n = (i == 0) ? 1 : i;
|
||||
double a = out[n][0];
|
||||
double b = out[n][1];
|
||||
double c = sqrt(a * a + b * b);
|
||||
|
||||
n = (i == FFT_SIZE/2)?(FFT_SIZE/2+1):i;
|
||||
n = (i == FFT_SIZE / 2) ? (FFT_SIZE / 2 + 1) : i;
|
||||
double x = out[FFT_SIZE / 2 + n][0];
|
||||
double y = out[FFT_SIZE / 2 + n][1];
|
||||
double z = sqrt(x * x + y * y);
|
||||
|
@ -20,7 +20,6 @@ public:
|
||||
void setData(std::vector<signed char> *data);
|
||||
private:
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
void OnKeyDown(wxKeyEvent& event);
|
||||
|
||||
void OnIdle(wxIdleEvent &event);
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
#include "SpectrumContext.h"
|
||||
|
||||
#include "SpectrumCanvas.h"
|
||||
#include "CubicSDR.h"
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
|
||||
SpectrumContext::SpectrumContext(SpectrumCanvas *canvas, wxGLContext *sharedContext) :
|
||||
PrimaryGLContext(canvas, sharedContext) {
|
||||
@ -13,24 +16,71 @@ SpectrumContext::SpectrumContext(SpectrumCanvas *canvas, wxGLContext *sharedCont
|
||||
}
|
||||
|
||||
void SpectrumContext::Draw(std::vector<float> &points) {
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
glColor3f(1.0, 1.0, 1.0);
|
||||
|
||||
if (points.size()) {
|
||||
glPushMatrix();
|
||||
glTranslatef(-1.0f, -0.9f, 0.0f);
|
||||
glScalef(2.0f, 1.8f, 1.0f);
|
||||
glTranslatef(-1.0f, -0.75f, 0.0f);
|
||||
glScalef(2.0f, 1.5f, 1.0f);
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
glVertexPointer(2, GL_FLOAT, 0, &points[0]);
|
||||
glDrawArrays(GL_LINE_STRIP, 0, points.size() / 2);
|
||||
glDisableClientState(GL_VERTEX_ARRAY);
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
GLint vp[4];
|
||||
glGetIntegerv( GL_VIEWPORT, vp);
|
||||
|
||||
float viewHeight = (float) vp[3];
|
||||
|
||||
float leftFreq = (float) wxGetApp().getFrequency() - ((float) SRATE / 2.0);
|
||||
float rightFreq = leftFreq + (float) SRATE;
|
||||
|
||||
float firstMhz = floor(leftFreq / 1000000.0) * 1000000.0;
|
||||
float mhzStart = ((firstMhz - leftFreq) / (rightFreq - leftFreq)) * 2.0;
|
||||
float mhzStep = (100000.0 / (rightFreq - leftFreq)) * 2.0;
|
||||
|
||||
double currentMhz = trunc(floor(firstMhz / 1000000.0));
|
||||
|
||||
std::stringstream label;
|
||||
label.precision(2);
|
||||
|
||||
float hPos = 1.0 - (16.0 / viewHeight);
|
||||
float lMhzPos = 1.0 - (5.0 / viewHeight);
|
||||
|
||||
for (float m = -1.0 + mhzStart, mMax = 1.0 + fabs(mhzStart); m <= mMax; m += mhzStep) {
|
||||
label << std::fixed << currentMhz;
|
||||
|
||||
double fractpart, intpart;
|
||||
|
||||
fractpart = modf(currentMhz, &intpart);
|
||||
|
||||
if (fractpart < 0.001) {
|
||||
glLineWidth(4.0);
|
||||
glColor3f(1.0, 1.0, 1.0);
|
||||
} else {
|
||||
glLineWidth(1.0);
|
||||
glColor3f(0.55, 0.55, 0.55);
|
||||
}
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glBegin(GL_LINES);
|
||||
glVertex2f(m, lMhzPos);
|
||||
glVertex2f(m, 1);
|
||||
glEnd();
|
||||
|
||||
getFont(PrimaryGLContext::GLFONT_SIZE12).drawString(label.str(), m, hPos, 12, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER);
|
||||
|
||||
label.str(std::string());
|
||||
|
||||
currentMhz += 0.1f;
|
||||
}
|
||||
|
||||
glLineWidth(1.0);
|
||||
|
||||
// getFont(PrimaryGLContext::GLFONT_SIZE16).drawString("Welcome to CubicSDR -- This is a test string. 01234567890!@#$%^&*()_[]",0.0,0.0,16,GLFont::GLFONT_ALIGN_CENTER,GLFont::GLFONT_ALIGN_CENTER);
|
||||
CheckGLError();
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
wxBEGIN_EVENT_TABLE(WaterfallCanvas, wxGLCanvas) EVT_PAINT(WaterfallCanvas::OnPaint)
|
||||
EVT_KEY_DOWN(WaterfallCanvas::OnKeyDown)
|
||||
EVT_KEY_UP(WaterfallCanvas::OnKeyUp)
|
||||
EVT_IDLE(WaterfallCanvas::OnIdle)
|
||||
EVT_MOTION(WaterfallCanvas::mouseMoved)
|
||||
EVT_LEFT_DOWN(WaterfallCanvas::mouseDown)
|
||||
@ -29,8 +30,8 @@ wxEND_EVENT_TABLE()
|
||||
|
||||
WaterfallCanvas::WaterfallCanvas(wxWindow *parent, int *attribList) :
|
||||
wxGLCanvas(parent, wxID_ANY, attribList, wxDefaultPosition, wxDefaultSize,
|
||||
wxFULL_REPAINT_ON_RESIZE), parent(parent), frameTimer(0), activeDemodulatorBandwidth(0), activeDemodulator(NULL), dragState(
|
||||
WF_DRAG_NONE), nextDragState(WF_DRAG_NONE) {
|
||||
wxFULL_REPAINT_ON_RESIZE), parent(parent), frameTimer(0), dragState(WF_DRAG_NONE), nextDragState(WF_DRAG_NONE), shiftDown(
|
||||
false), altDown(false), ctrlDown(false), activeDemodulatorBandwidth(0), activeDemodulatorFrequency(0) {
|
||||
|
||||
int in_block_size = BUF_SIZE / 2;
|
||||
int out_block_size = FFT_SIZE;
|
||||
@ -73,17 +74,62 @@ void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
|
||||
|
||||
std::vector<DemodulatorInstance *> &demods = wxGetApp().getDemodMgr().getDemodulators();
|
||||
|
||||
if (mTracker.mouseInView()) {
|
||||
DemodulatorInstance *activeDemodulator = wxGetApp().getDemodMgr().getActiveDemodulator();
|
||||
DemodulatorInstance *lastActiveDemodulator = wxGetApp().getDemodMgr().getLastActiveDemodulator();
|
||||
|
||||
if (activeDemodulator == NULL) {
|
||||
glContext->DrawFreqSelector(mTracker.getMouseX(), 0, 1, 0);
|
||||
if (mTracker.mouseInView()) {
|
||||
if (nextDragState == WF_DRAG_RANGE) {
|
||||
if (mTracker.mouseDown()) {
|
||||
float width = mTracker.getOriginDeltaMouseX();
|
||||
float centerPos = mTracker.getOriginMouseX() + width / 2.0;
|
||||
|
||||
if (shiftDown) {
|
||||
glContext->DrawDemod(lastActiveDemodulator);
|
||||
glContext->DrawFreqSelector(centerPos, 0, 1, 0, width ? width : (1.0 / (float) ClientSize.x));
|
||||
} else {
|
||||
glContext->DrawDemod(lastActiveDemodulator, 1, 0, 0);
|
||||
glContext->DrawFreqSelector(centerPos, 1, 1, 0, width ? width : (1.0 / (float) ClientSize.x));
|
||||
}
|
||||
} else {
|
||||
if (shiftDown) {
|
||||
glContext->DrawDemod(lastActiveDemodulator);
|
||||
glContext->DrawFreqSelector(mTracker.getMouseX(), 0, 1, 0, 1.0 / (float) ClientSize.x);
|
||||
} else {
|
||||
glContext->DrawDemod(lastActiveDemodulator, 1, 0, 0);
|
||||
glContext->DrawFreqSelector(mTracker.getMouseX(), 1, 1, 0, 1.0 / (float) ClientSize.x);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
glContext->DrawDemod(activeDemodulator, 1, 1, 0);
|
||||
if (activeDemodulator == NULL) {
|
||||
if (lastActiveDemodulator) {
|
||||
if (shiftDown) {
|
||||
glContext->DrawDemod(lastActiveDemodulator);
|
||||
glContext->DrawFreqSelector(mTracker.getMouseX(), 0, 1, 0);
|
||||
} else {
|
||||
glContext->DrawDemod(lastActiveDemodulator, 1, 0, 0);
|
||||
glContext->DrawFreqSelector(mTracker.getMouseX(), 1, 1, 0);
|
||||
}
|
||||
} else {
|
||||
glContext->DrawFreqSelector(mTracker.getMouseX(), 1, 1, 0);
|
||||
}
|
||||
} else {
|
||||
if (lastActiveDemodulator) {
|
||||
glContext->DrawDemod(lastActiveDemodulator);
|
||||
}
|
||||
glContext->DrawDemod(activeDemodulator, 1, 1, 0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (activeDemodulator) {
|
||||
glContext->DrawDemod(activeDemodulator);
|
||||
}
|
||||
if (lastActiveDemodulator) {
|
||||
glContext->DrawDemod(lastActiveDemodulator);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0, iMax = demods.size(); i < iMax; i++) {
|
||||
if (activeDemodulator == demods[i]) {
|
||||
if (activeDemodulator == demods[i] || lastActiveDemodulator == demods[i]) {
|
||||
continue;
|
||||
}
|
||||
glContext->DrawDemod(demods[i]);
|
||||
@ -94,9 +140,23 @@ void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
|
||||
SwapBuffers();
|
||||
}
|
||||
|
||||
void WaterfallCanvas::OnKeyUp(wxKeyEvent& event) {
|
||||
shiftDown = event.ShiftDown();
|
||||
altDown = event.AltDown();
|
||||
ctrlDown = event.ControlDown();
|
||||
// switch (event.GetKeyCode()) {
|
||||
// }
|
||||
}
|
||||
|
||||
void WaterfallCanvas::OnKeyDown(wxKeyEvent& event) {
|
||||
float angle = 5.0;
|
||||
|
||||
shiftDown = event.ShiftDown();
|
||||
altDown = event.AltDown();
|
||||
ctrlDown = event.ControlDown();
|
||||
|
||||
DemodulatorInstance *activeDemod = wxGetApp().getDemodMgr().getActiveDemodulator();
|
||||
|
||||
unsigned int freq;
|
||||
switch (event.GetKeyCode()) {
|
||||
case WXK_RIGHT:
|
||||
@ -111,12 +171,15 @@ void WaterfallCanvas::OnKeyDown(wxKeyEvent& event) {
|
||||
wxGetApp().setFrequency(freq);
|
||||
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
|
||||
break;
|
||||
case WXK_DOWN:
|
||||
break;
|
||||
case WXK_UP:
|
||||
break;
|
||||
case WXK_SPACE:
|
||||
case 'D':
|
||||
case WXK_DELETE:
|
||||
if (!activeDemod) {
|
||||
break;
|
||||
}
|
||||
wxGetApp().getDemodMgr().deleteThread(activeDemod);
|
||||
wxGetApp().removeDemodulator(activeDemod);
|
||||
break;
|
||||
|
||||
default:
|
||||
event.Skip();
|
||||
return;
|
||||
@ -205,12 +268,19 @@ void WaterfallCanvas::OnIdle(wxIdleEvent &event) {
|
||||
void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
|
||||
mTracker.OnMouseMoved(event);
|
||||
|
||||
DemodulatorInstance *demod = wxGetApp().getDemodTest();
|
||||
shiftDown = event.ShiftDown();
|
||||
altDown = event.AltDown();
|
||||
ctrlDown = event.ControlDown();
|
||||
|
||||
DemodulatorInstance *demod = wxGetApp().getDemodMgr().getActiveDemodulator();
|
||||
|
||||
if (mTracker.mouseDown()) {
|
||||
if (demod == NULL) {
|
||||
return;
|
||||
}
|
||||
if (dragState == WF_DRAG_BANDWIDTH_LEFT || dragState == WF_DRAG_BANDWIDTH_RIGHT) {
|
||||
|
||||
int bwDiff = (int) (mTracker.getDeltaMouseX() * (float)SRATE) * 2;
|
||||
int bwDiff = (int) (mTracker.getDeltaMouseX() * (float) SRATE) * 2;
|
||||
|
||||
if (dragState == WF_DRAG_BANDWIDTH_LEFT) {
|
||||
bwDiff = -bwDiff;
|
||||
@ -235,7 +305,7 @@ void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
|
||||
}
|
||||
|
||||
if (dragState == WF_DRAG_FREQUENCY) {
|
||||
int bwDiff = (int) (mTracker.getDeltaMouseX() * (float)SRATE);
|
||||
int bwDiff = (int) (mTracker.getDeltaMouseX() * (float) SRATE);
|
||||
|
||||
if (!activeDemodulatorFrequency) {
|
||||
activeDemodulatorFrequency = demod->getParams().frequency;
|
||||
@ -247,32 +317,56 @@ void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
|
||||
|
||||
command.int_value = activeDemodulatorFrequency;
|
||||
demod->getCommandQueue()->push(command);
|
||||
|
||||
demod->updateLabel(activeDemodulatorFrequency);
|
||||
}
|
||||
} else {
|
||||
int freqPos = GetFrequencyAt(mTracker.getMouseX());
|
||||
|
||||
activeDemodulator = NULL;
|
||||
|
||||
std::vector<DemodulatorInstance *> *demodsHover = wxGetApp().getDemodMgr().getDemodulatorsAt(freqPos, 15000);
|
||||
|
||||
if (demodsHover->size()) {
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(NULL);
|
||||
|
||||
if (altDown) {
|
||||
nextDragState = WF_DRAG_RANGE;
|
||||
mTracker.setVertDragLock(true);
|
||||
mTracker.setHorizDragLock(false);
|
||||
} else if (demodsHover->size()) {
|
||||
int hovered = -1;
|
||||
int near_dist = SRATE;
|
||||
|
||||
DemodulatorInstance *activeDemodulator = NULL;
|
||||
|
||||
for (int i = 0, iMax = demodsHover->size(); i < iMax; i++) {
|
||||
DemodulatorInstance *demod = (*demodsHover)[i];
|
||||
int freqDiff = (int) demod->getParams().frequency - freqPos;
|
||||
int halfBw = (demod->getParams().bandwidth / 2);
|
||||
|
||||
int dist = abs((int)demod->getParams().frequency - freqPos);
|
||||
int dist = abs(freqDiff);
|
||||
|
||||
if (dist < near_dist) {
|
||||
activeDemodulator = demod;
|
||||
near_dist = dist;
|
||||
}
|
||||
|
||||
if (dist <= halfBw && dist >= (int) ((float) halfBw / (float) 1.5)) {
|
||||
int edge_dist = abs(halfBw - dist);
|
||||
if (edge_dist < near_dist) {
|
||||
activeDemodulator = demod;
|
||||
near_dist = edge_dist;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int freqDiff = ((int)activeDemodulator->getParams().frequency - freqPos);
|
||||
if (activeDemodulator == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (near_dist > (activeDemodulator->getParams().bandwidth / 3)) {
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(activeDemodulator);
|
||||
|
||||
int freqDiff = ((int) activeDemodulator->getParams().frequency - freqPos);
|
||||
|
||||
if (abs(freqDiff) > (activeDemodulator->getParams().bandwidth / 3)) {
|
||||
SetCursor(wxCURSOR_SIZEWE);
|
||||
|
||||
if (freqDiff > 0) {
|
||||
@ -281,7 +375,6 @@ void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
|
||||
nextDragState = WF_DRAG_BANDWIDTH_RIGHT;
|
||||
}
|
||||
|
||||
|
||||
mTracker.setVertDragLock(true);
|
||||
mTracker.setHorizDragLock(false);
|
||||
} else {
|
||||
@ -302,53 +395,145 @@ void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
|
||||
|
||||
void WaterfallCanvas::mouseDown(wxMouseEvent& event) {
|
||||
mTracker.OnMouseDown(event);
|
||||
|
||||
dragState = nextDragState;
|
||||
|
||||
shiftDown = event.ShiftDown();
|
||||
altDown = event.AltDown();
|
||||
ctrlDown = event.ControlDown();
|
||||
|
||||
if (dragState && dragState != WF_DRAG_RANGE) {
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(wxGetApp().getDemodMgr().getActiveDemodulator(), false);
|
||||
}
|
||||
|
||||
activeDemodulatorBandwidth = 0;
|
||||
activeDemodulatorFrequency = 0;
|
||||
}
|
||||
|
||||
void WaterfallCanvas::mouseWheelMoved(wxMouseEvent& event) {
|
||||
DemodulatorInstance *demod = wxGetApp().getDemodTest();
|
||||
mTracker.OnMouseWheelMoved(event);
|
||||
}
|
||||
|
||||
void WaterfallCanvas::mouseReleased(wxMouseEvent& event) {
|
||||
mTracker.OnMouseReleased(event);
|
||||
|
||||
if (mTracker.getOriginDeltaMouseX() == 0 && mTracker.getOriginDeltaMouseY() == 0 && dragState == WF_DRAG_NONE) {
|
||||
shiftDown = event.ShiftDown();
|
||||
altDown = event.AltDown();
|
||||
ctrlDown = event.ControlDown();
|
||||
|
||||
mTracker.setVertDragLock(false);
|
||||
mTracker.setHorizDragLock(false);
|
||||
|
||||
DemodulatorInstance *demod;
|
||||
|
||||
if (mTracker.getOriginDeltaMouseX() == 0 && mTracker.getOriginDeltaMouseY() == 0) {
|
||||
float pos = mTracker.getMouseX();
|
||||
int center_freq = wxGetApp().getFrequency();
|
||||
int freq = center_freq - (int) (0.5 * (float) SRATE) + (int) ((float) pos * (float) SRATE);
|
||||
|
||||
if (dragState == WF_DRAG_NONE) {
|
||||
if (!shiftDown && wxGetApp().getDemodMgr().getDemodulators().size()) {
|
||||
demod = wxGetApp().getDemodMgr().getLastActiveDemodulator();
|
||||
} else {
|
||||
demod = wxGetApp().getDemodMgr().newThread();
|
||||
demod->getParams().frequency = freq;
|
||||
|
||||
if (DemodulatorInstance *last = wxGetApp().getDemodMgr().getLastActiveDemodulator()) {
|
||||
demod->getParams().bandwidth = last->getParams().bandwidth;
|
||||
}
|
||||
|
||||
demod->run();
|
||||
|
||||
wxGetApp().bindDemodulator(demod);
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(demod);
|
||||
}
|
||||
|
||||
if (demod == NULL) {
|
||||
dragState = WF_DRAG_NONE;
|
||||
return;
|
||||
}
|
||||
|
||||
demod->updateLabel(freq);
|
||||
|
||||
DemodulatorThreadCommand command;
|
||||
command.cmd = DemodulatorThreadCommand::DEMOD_THREAD_CMD_SET_FREQUENCY;
|
||||
command.int_value = freq;
|
||||
demod->getCommandQueue()->push(command);
|
||||
|
||||
((wxFrame*) parent)->GetStatusBar()->SetStatusText(
|
||||
wxString::Format(wxT("Set demodulator frequency: %s"),
|
||||
wxNumberFormatter::ToString((long) freq, wxNumberFormatter::Style_WithThousandsSep)));
|
||||
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(wxGetApp().getDemodMgr().getLastActiveDemodulator(), false);
|
||||
SetCursor(wxCURSOR_SIZING);
|
||||
nextDragState = WF_DRAG_FREQUENCY;
|
||||
mTracker.setVertDragLock(true);
|
||||
mTracker.setHorizDragLock(false);
|
||||
} else {
|
||||
float pos = mTracker.getMouseX();
|
||||
int center_freq = wxGetApp().getFrequency();
|
||||
int freq = center_freq - (int) (0.5 * (float) SRATE) + (int) ((float) pos * (float) SRATE);
|
||||
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(wxGetApp().getDemodMgr().getActiveDemodulator(), false);
|
||||
nextDragState = WF_DRAG_NONE;
|
||||
}
|
||||
} else if (dragState == WF_DRAG_RANGE) {
|
||||
float width = mTracker.getOriginDeltaMouseX();
|
||||
float pos = mTracker.getOriginMouseX() + width / 2.0;
|
||||
|
||||
int center_freq = wxGetApp().getFrequency();
|
||||
|
||||
DemodulatorInstance *demod = wxGetApp().getDemodTest();
|
||||
|
||||
int freq = center_freq - (int) (0.5 * (float) SRATE) + (int) ((float) pos * (float) SRATE);
|
||||
int bandwidth = (int)(fabs(width) * (float)SRATE);
|
||||
|
||||
if (bandwidth < 1000) {
|
||||
bandwidth = 1000;
|
||||
}
|
||||
|
||||
if (!bandwidth) {
|
||||
dragState = WF_DRAG_NONE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!shiftDown && wxGetApp().getDemodMgr().getDemodulators().size()) {
|
||||
demod = wxGetApp().getDemodMgr().getLastActiveDemodulator();
|
||||
} else {
|
||||
demod = wxGetApp().getDemodMgr().newThread();
|
||||
demod->getParams().frequency = freq;
|
||||
demod->getParams().bandwidth = bandwidth;
|
||||
|
||||
demod->run();
|
||||
|
||||
wxGetApp().bindDemodulator(demod);
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(demod);
|
||||
}
|
||||
|
||||
if (demod == NULL) {
|
||||
dragState = WF_DRAG_NONE;
|
||||
return;
|
||||
}
|
||||
|
||||
((wxFrame*) parent)->GetStatusBar()->SetStatusText(
|
||||
wxString::Format(wxT("Set demodulator frequency: %s"),
|
||||
wxNumberFormatter::ToString((long) freq, wxNumberFormatter::Style_WithThousandsSep)));
|
||||
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(wxGetApp().getDemodMgr().getLastActiveDemodulator(), false);
|
||||
demod->updateLabel(freq);
|
||||
|
||||
DemodulatorThreadCommand command;
|
||||
command.cmd = DemodulatorThreadCommand::DEMOD_THREAD_CMD_SET_FREQUENCY;
|
||||
command.int_value = freq;
|
||||
|
||||
demod->getCommandQueue()->push(command);
|
||||
|
||||
((wxFrame*) parent)->GetStatusBar()->SetStatusText(
|
||||
wxString::Format(wxT("Set center frequency: %s"),
|
||||
wxNumberFormatter::ToString((long) freq, wxNumberFormatter::Style_WithThousandsSep)));
|
||||
command.cmd = DemodulatorThreadCommand::DEMOD_THREAD_CMD_SET_BANDWIDTH;
|
||||
command.int_value = bandwidth;
|
||||
demod->getCommandQueue()->push(command);
|
||||
}
|
||||
|
||||
dragState = WF_DRAG_NONE;
|
||||
|
||||
mTracker.setVertDragLock(true);
|
||||
mTracker.setHorizDragLock(true);
|
||||
|
||||
SetCursor(wxCURSOR_CROSS);
|
||||
}
|
||||
|
||||
void WaterfallCanvas::mouseLeftWindow(wxMouseEvent& event) {
|
||||
mTracker.OnMouseLeftWindow(event);
|
||||
SetCursor(wxCURSOR_CROSS);
|
||||
activeDemodulator = NULL;
|
||||
wxGetApp().getDemodMgr().setActiveDemodulator(NULL);
|
||||
}
|
||||
|
||||
void WaterfallCanvas::mouseEnterWindow(wxMouseEvent& event) {
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
class WaterfallCanvas: public wxGLCanvas {
|
||||
public:
|
||||
enum DragState { WF_DRAG_NONE, WF_DRAG_BANDWIDTH_LEFT, WF_DRAG_BANDWIDTH_RIGHT, WF_DRAG_FREQUENCY };
|
||||
enum DragState { WF_DRAG_NONE, WF_DRAG_BANDWIDTH_LEFT, WF_DRAG_BANDWIDTH_RIGHT, WF_DRAG_FREQUENCY, WF_DRAG_RANGE };
|
||||
|
||||
WaterfallCanvas(wxWindow *parent, int *attribList = NULL);
|
||||
~WaterfallCanvas();
|
||||
@ -25,6 +25,7 @@ public:
|
||||
private:
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
void OnKeyDown(wxKeyEvent& event);
|
||||
void OnKeyUp(wxKeyEvent& event);
|
||||
|
||||
void OnIdle(wxIdleEvent &event);
|
||||
|
||||
@ -55,12 +56,14 @@ private:
|
||||
|
||||
int activeDemodulatorBandwidth;
|
||||
int activeDemodulatorFrequency;
|
||||
DemodulatorInstance *activeDemodulator;
|
||||
|
||||
DragState dragState;
|
||||
DragState nextDragState;
|
||||
|
||||
// event table
|
||||
bool shiftDown;
|
||||
bool altDown;
|
||||
bool ctrlDown;
|
||||
// event table
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
};
|
||||
|
||||
|
@ -37,12 +37,6 @@ WaterfallContext::WaterfallContext(WaterfallCanvas *canvas, wxGLContext *sharedC
|
||||
glPixelMapfv(GL_PIXEL_MAP_I_TO_B, 256, &(grad.getBlue())[0]);
|
||||
}
|
||||
|
||||
void WaterfallContext::BeginDraw() {
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
void WaterfallContext::Draw(std::vector<float> &points) {
|
||||
|
||||
@ -82,83 +76,3 @@ void WaterfallContext::Draw(std::vector<float> &points) {
|
||||
|
||||
}
|
||||
|
||||
void WaterfallContext::DrawDemod(DemodulatorInstance *demod, float r, float g, float b) {
|
||||
if (!demod) {
|
||||
return;
|
||||
}
|
||||
|
||||
float uxPos = (float) (demod->getParams().frequency - (wxGetApp().getFrequency() - SRATE / 2)) / (float) SRATE;
|
||||
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
|
||||
glColor4f(r, g, b, 0.6);
|
||||
|
||||
glBegin(GL_LINES);
|
||||
glVertex3f((uxPos - 0.5) * 2.0, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0, -1.0, 0.0);
|
||||
|
||||
float ofs = ((float) demod->getParams().bandwidth) / (float) SRATE;
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
|
||||
|
||||
glEnd();
|
||||
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
|
||||
glColor4f(r, g, b, 0.2);
|
||||
glBegin(GL_QUADS);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
|
||||
glEnd();
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
}
|
||||
|
||||
void WaterfallContext::DrawFreqSelector(float uxPos, float r, float g, float b) {
|
||||
DemodulatorInstance *demod = wxGetApp().getDemodTest();
|
||||
|
||||
if (!demod) {
|
||||
return;
|
||||
}
|
||||
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
|
||||
glColor4f(r, g, b, 0.6);
|
||||
|
||||
glBegin(GL_LINES);
|
||||
glVertex3f((uxPos - 0.5) * 2.0, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0, -1.0, 0.0);
|
||||
|
||||
float ofs = ((float) demod->getParams().bandwidth) / (float) SRATE;
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
|
||||
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
|
||||
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
|
||||
|
||||
glEnd();
|
||||
glDisable(GL_BLEND);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
}
|
||||
|
||||
void WaterfallContext::EndDraw() {
|
||||
glFlush();
|
||||
|
||||
CheckGLError();
|
||||
}
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
#include "PrimaryGLContext.h"
|
||||
#include "Gradient.h"
|
||||
#include "DemodulatorMgr.h"
|
||||
|
||||
#define NUM_WATERFALL_LINES 512
|
||||
|
||||
@ -12,11 +11,8 @@ class WaterfallContext: public PrimaryGLContext {
|
||||
public:
|
||||
WaterfallContext(WaterfallCanvas *canvas, wxGLContext *sharedContext);
|
||||
|
||||
void BeginDraw();
|
||||
|
||||
void Draw(std::vector<float> &points);
|
||||
void DrawFreqSelector(float uxPos, float r = 1, float g = 1, float b = 1);
|
||||
void DrawDemod(DemodulatorInstance *demod, float r = 1, float g = 1, float b = 1);
|
||||
void EndDraw();
|
||||
|
||||
private:
|
||||
Gradient grad;
|
||||
|
Loading…
Reference in New Issue
Block a user