add device thread name
call main_thread Init() and CleanUp()
public common_thread_impl Init() and CleanUp()
fix unittest for code change
use absolute namespace path or will conflict with canscope::device
canscope_thread add device_error
stop thread before thread dtor
use absolute namespace path or will conflict with canscope::device
add necessary namespace path
add InitFromConfig() for init prefs
add init() for two phase initialize
ctor init field
implement different IsDeviceThread() for unittest and no unittest
access OscDevice ConfigManager for unittest
init osc_device_handle
enhance GetValueTest
add SetValueTest
add new file and dependent project
use mock replace self-made stub class
add ctor dtor
observer pref change
update pref when pref change
add SetValueAndNotify test
make observer private.
mv error and dictionary value convert to device errors
check before call call_back
add necessary namespace path